⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 conversation.xs

📁 Linux下的多协议即时通讯程序源代码
💻 XS
字号:
#include "module.h"MODULE = Purple::Conversation  PACKAGE = Purple  PREFIX = purple_PROTOTYPES: ENABLEBOOT:{	HV *type_stash = gv_stashpv("Purple::Conversation::Type", 1);	HV *update_stash = gv_stashpv("Purple::Conversation::Update::Type", 1);	HV *typing_stash = gv_stashpv("Purple::Conversation::TypingState", 1);	HV *flags_stash = gv_stashpv("Purple::Conversation::Flags", 1);	HV *cbflags_stash = gv_stashpv("Purple::Conversation::ChatBuddy::Flags", 1);	static const constiv *civ, type_const_iv[] = {#define const_iv(name) {#name, (IV)PURPLE_CONV_TYPE_##name}		const_iv(UNKNOWN),		const_iv(IM),		const_iv(CHAT),		const_iv(MISC),		const_iv(ANY),	};	static const constiv update_const_iv[] = {#undef const_iv#define const_iv(name) {#name, (IV)PURPLE_CONV_UPDATE_##name}		const_iv(ADD),		const_iv(REMOVE),		const_iv(ACCOUNT),		const_iv(TYPING),		const_iv(UNSEEN),		const_iv(LOGGING),		const_iv(TOPIC),/*		const_iv(ONLINE),		const_iv(OFFLINE),*/		const_iv(AWAY),		const_iv(ICON),		const_iv(TITLE),		const_iv(CHATLEFT),		const_iv(FEATURES),	};	static const constiv typing_const_iv[] = {#undef const_iv#define const_iv(name) {#name, (IV)PURPLE_##name}		const_iv(NOT_TYPING),		const_iv(TYPING),		const_iv(TYPED),	};	static const constiv flags_const_iv[] = {#undef const_iv#define const_iv(name) {#name, (IV)PURPLE_MESSAGE_##name}		const_iv(SEND),		const_iv(RECV),		const_iv(SYSTEM),		const_iv(AUTO_RESP),		const_iv(ACTIVE_ONLY),		const_iv(NICK),		const_iv(NO_LOG),		const_iv(WHISPER),		const_iv(ERROR),		const_iv(DELAYED),		const_iv(RAW),		const_iv(IMAGES),		const_iv(NOTIFY),	};	static const constiv cbflags_const_iv[] = {#undef const_iv#define const_iv(name) {#name, (IV)PURPLE_CBFLAGS_##name}		const_iv(NONE),		const_iv(VOICE),		const_iv(HALFOP),		const_iv(OP),		const_iv(FOUNDER),		const_iv(TYPING),	};	for (civ = type_const_iv + sizeof(type_const_iv) / sizeof(type_const_iv[0]); civ-- > type_const_iv; )		newCONSTSUB(type_stash, (char *)civ->name, newSViv(civ->iv));	for (civ = update_const_iv + sizeof(update_const_iv) / sizeof(update_const_iv[0]); civ-- > update_const_iv; )		newCONSTSUB(update_stash, (char *)civ->name, newSViv(civ->iv));	for (civ = typing_const_iv + sizeof(typing_const_iv) / sizeof(typing_const_iv[0]); civ-- > typing_const_iv; )		newCONSTSUB(typing_stash, (char *)civ->name, newSViv(civ->iv));	for (civ = flags_const_iv + sizeof(flags_const_iv) / sizeof(flags_const_iv[0]); civ-- > flags_const_iv; )		newCONSTSUB(flags_stash, (char *)civ->name, newSViv(civ->iv));	for (civ = cbflags_const_iv + sizeof(cbflags_const_iv) / sizeof(cbflags_const_iv[0]); civ-- > cbflags_const_iv; )		newCONSTSUB(cbflags_stash, (char *)civ->name, newSViv(civ->iv));}voidpurple_get_ims()PREINIT:	GList *l;PPCODE:	for (l = purple_get_ims(); l != NULL; l = l->next) {		XPUSHs(sv_2mortal(purple_perl_bless_object(l->data, "Purple::Conversation")));	}voidpurple_get_conversations()PREINIT:	GList *l;PPCODE:	for (l = purple_get_conversations(); l != NULL; l = l->next) {		XPUSHs(sv_2mortal(purple_perl_bless_object(l->data, "Purple::Conversation")));	}voidpurple_get_chats()PREINIT:	GList *l;PPCODE:	for (l = purple_get_chats(); l != NULL; l = l->next) {		XPUSHs(sv_2mortal(purple_perl_bless_object(l->data, "Purple::Conversation")));	}MODULE = Purple::Conversation  PACKAGE = Purple::Conversations  PREFIX = purple_conversations_PROTOTYPES: ENABLEPurple::Handlepurple_conversations_get_handle()voidpurple_conversations_init()voidpurple_conversations_uninit()MODULE = Purple::Conversation  PACKAGE = Purple::Conversation  PREFIX = purple_conversation_PROTOTYPES: ENABLEvoidpurple_conversation_destroy(conv)	Purple::Conversation convPurple::ConversationTypepurple_conversation_get_type(conv)	Purple::Conversation convPurple::Accountpurple_conversation_get_account(conv)	Purple::Conversation convPurple::Connectionpurple_conversation_get_gc(conv)	Purple::Conversation convvoidpurple_conversation_set_title(conv, title);	Purple::Conversation conv	const char * titleconst char *purple_conversation_get_title(conv)	Purple::Conversation convvoidpurple_conversation_autoset_title(conv)	Purple::Conversation convvoidpurple_conversation_set_name(conv, name)	Purple::Conversation conv	const char *nameconst char *purple_conversation_get_name(conv)	Purple::Conversation convvoidpurple_conversation_set_logging(conv, log)	Purple::Conversation conv	gboolean loggbooleanpurple_conversation_is_logging(conv)	Purple::Conversation convPurple::Conversation::IMpurple_conversation_get_im_data(conv)	Purple::Conversation convPurple::Conversation::Chatpurple_conversation_get_chat_data(conv)	Purple::Conversation convgpointerpurple_conversation_get_data(conv, key)	Purple::Conversation conv	const char * keyPurple::ConnectionFlagspurple_conversation_get_features(conv)	Purple::Conversation convgbooleanpurple_conversation_has_focus(conv)	Purple::Conversation convvoidpurple_conversation_update(conv, type)	Purple::Conversation conv	Purple::ConvUpdateType typePurple::Conversationpurple_conversation_new(class, type, account, name)	Purple::ConversationType type	Purple::Account account	const char *name    C_ARGS:	type, account, namevoidpurple_conversation_set_account(conv, account);	Purple::Conversation conv	Purple::Account accountMODULE = Purple::Conversation  PACKAGE = Purple::Conversation::IM  PREFIX = purple_conv_im_PROTOTYPES: ENABLEPurple::Conversationpurple_conv_im_get_conversation(im)	Purple::Conversation::IM imvoidpurple_conv_im_set_icon(im, icon)	Purple::Conversation::IM im	Purple::Buddy::Icon iconPurple::Buddy::Iconpurple_conv_im_get_icon(im)	Purple::Conversation::IM imvoidpurple_conv_im_set_typing_state(im, state)	Purple::Conversation::IM im	Purple::TypingState statePurple::TypingStatepurple_conv_im_get_typing_state(im)	Purple::Conversation::IM imvoidpurple_conv_im_start_typing_timeout(im, timeout)	Purple::Conversation::IM im	int timeoutvoidpurple_conv_im_stop_typing_timeout(im)	Purple::Conversation::IM imguintpurple_conv_im_get_typing_timeout(im)	Purple::Conversation::IM imvoidpurple_conv_im_set_type_again(im, val)	Purple::Conversation::IM im	time_t valtime_tpurple_conv_im_get_type_again(im)	Purple::Conversation::IM imvoidpurple_conv_im_start_send_typed_timeout(im)	Purple::Conversation::IM imvoidpurple_conv_im_stop_send_typed_timeout(im)	Purple::Conversation::IM imguintpurple_conv_im_get_send_typed_timeout(im)	Purple::Conversation::IM imvoidpurple_conv_im_update_typing(im)	Purple::Conversation::IM imvoidpurple_conv_im_send(im, message)	Purple::Conversation::IM im	const char *messagevoidpurple_conv_im_write(im, who, message, flags, mtime)	Purple::Conversation::IM im	const char *who	const char *message	Purple::MessageFlags flags	time_t mtimeMODULE = Purple::Conversation  PACKAGE = Purple::Conversation  PREFIX = purple_conv_PROTOTYPES: ENABLEgbooleanpurple_conv_present_error(who, account, what)	const char *who	Purple::Account account	const char *whatvoidpurple_conv_custom_smiley_close(conv, smile)	Purple::Conversation conv	const char *smileMODULE = Purple::Conversation  PACKAGE = Purple::Conversation::Chat  PREFIX = purple_conv_chat_PROTOTYPES: ENABLEPurple::Conversationpurple_conv_chat_get_conversation(chat)	Purple::Conversation::Chat chatvoidpurple_conv_chat_set_users(chat, users)	Purple::Conversation::Chat chat	SV * usersPREINIT:	GList *l, *t_GL;	int i, t_len;PPCODE:	t_GL = NULL;	t_len = av_len((AV *)SvRV(users));	for (i = 0; i < t_len; i++) {		STRLEN t_sl;		t_GL = g_list_append(t_GL, SvPV(*av_fetch((AV *)SvRV(users), i, 0), t_sl));	}	for (l = purple_conv_chat_set_users(chat, t_GL); l != NULL; l = l->next) {		XPUSHs(sv_2mortal(purple_perl_bless_object(l->data, "Purple::ListEntry")));	}voidpurple_conv_chat_get_users(chat)	Purple::Conversation::Chat chatPREINIT:	GList *l;PPCODE:	for (l = purple_conv_chat_get_users(chat); l != NULL; l = l->next) {		XPUSHs(sv_2mortal(purple_perl_bless_object(l->data, "Purple::ListEntry")));	}voidpurple_conv_chat_ignore(chat, name)	Purple::Conversation::Chat chat	const char *namevoidpurple_conv_chat_unignore(chat, name)	Purple::Conversation::Chat chat	const char *namevoidpurple_conv_chat_set_ignored(chat, ignored)	Purple::Conversation::Chat chat	SV * ignoredPREINIT:	GList *l, *t_GL;	int i, t_len;PPCODE:	t_GL = NULL;	t_len = av_len((AV *)SvRV(ignored));	for (i = 0; i < t_len; i++) {		STRLEN t_sl;		t_GL = g_list_append(t_GL, SvPV(*av_fetch((AV *)SvRV(ignored), i, 0), t_sl));	}	for (l = purple_conv_chat_set_ignored(chat, t_GL); l != NULL; l = l->next) {		XPUSHs(sv_2mortal(purple_perl_bless_object(l->data, "Purple::ListEntry")));	}voidpurple_conv_chat_get_ignored(chat)	Purple::Conversation::Chat chatPREINIT:	GList *l;PPCODE:	for (l = purple_conv_chat_get_ignored(chat); l != NULL; l = l->next) {		XPUSHs(sv_2mortal(purple_perl_bless_object(l->data, "Purple::ListEntry")));	}const char *purple_conv_chat_get_topic(chat)	Purple::Conversation::Chat chatvoidpurple_conv_chat_set_id(chat, id)	Purple::Conversation::Chat chat	int idintpurple_conv_chat_get_id(chat)	Purple::Conversation::Chat chatvoidpurple_conv_chat_send(chat, message)	Purple::Conversation::Chat chat	const char * messagevoidpurple_conv_chat_write(chat, who, message, flags, mtime)	Purple::Conversation::Chat chat	const char *who	const char *message	Purple::MessageFlags flags	time_t mtimevoidpurple_conv_chat_add_users(chat, users, extra_msgs, flags, new_arrivals)	Purple::Conversation::Chat chat	SV * users	SV * extra_msgs	SV * flags	gboolean new_arrivalsPREINIT:	GList *t_GL_users, *t_GL_extra_msgs, *t_GL_flags;	int i, t_len;PPCODE:	t_GL_users = NULL;	t_len = av_len((AV *)SvRV(users));	for (i = 0; i < t_len; i++) {		STRLEN t_sl;		t_GL_users = g_list_append(t_GL_users, SvPV(*av_fetch((AV *)SvRV(users), i, 0), t_sl));	}	t_GL_flags = NULL;	t_len = av_len((AV *)SvRV(flags));	for (i = 0; i < t_len; i++) {		STRLEN t_sl;		t_GL_flags = g_list_append(t_GL_flags, SvPV(*av_fetch((AV *)SvRV(flags), i, 0), t_sl));	}	t_GL_extra_msgs = NULL;	t_len = av_len((AV *)SvRV(extra_msgs));	for (i = 0; i < t_len; i++) {		STRLEN t_sl;		t_GL_extra_msgs = g_list_append(t_GL_extra_msgs, SvPV(*av_fetch((AV *)SvRV(extra_msgs), i, 0), t_sl));	}	purple_conv_chat_add_users(chat, t_GL_users, t_GL_extra_msgs, t_GL_flags, new_arrivals);gbooleanpurple_conv_chat_find_user(chat, user)	Purple::Conversation::Chat chat	const char * uservoid purple_conv_chat_clear_users(chat)	Purple::Conversation::Chat chatvoid purple_conv_chat_set_nick(chat, nick)	Purple::Conversation::Chat chat	const char * nickconst char *purple_conv_chat_get_nick(chat)	Purple::Conversation::Chat chatPurple::Conversationpurple_find_chat(gc, id)	Purple::Connection gc	int idvoid purple_conv_chat_left(chat)	Purple::Conversation::Chat chatgboolean purple_conv_chat_has_left(chat)	Purple::Conversation::Chat chatPurple::Conversation::ChatBuddypurple_conv_chat_cb_find(chat, name)	Purple::Conversation::Chat chat	const char *nameconst char *purple_conv_chat_cb_get_name(cb)	Purple::Conversation::ChatBuddy cbvoidpurple_conv_chat_cb_destroy(cb);	Purple::Conversation::ChatBuddy cb

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -