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

📄 datastruct.h

📁 linux-下的fetion-0.8.1。包括所有源代码
💻 H
字号:
/** * \file datastruct.h * \author dengdd <dedodong@163.com> * \date 2008/1/1 *  * This file includes necessary struct define of libfetion. * \verbatim    Copyright (C) 2008 dengdd.    All rights reserved by dengdd.    This file is part of libfetion, a cross-operating-system library to operate China mobile's fetion IM. \endverbatim */#ifndef _LIBFETION_DATASTRUCT_H_#define _LIBFETION_DATASTRUCT_H_#ifndef __LIBFETION_LIB__#ifdef __cplusplus extern "C" { #endif /** * \defgroup fetion_dlist LibFetion DList Define * @{ * \sa */typedef int (*GCompareFunc) (const void* a, const void *b);typedef int (*GCompareDataFunc)  (const void*  a,const void*  b, void* user_data);typedef void (*GFunc)    (void *data,void* user_data);/** * The DList structure. * * \sa  */typedef struct _DList{	/** data.*/	void* data;	/** the next node of list.*/	struct _DList *next;}DList;DList*  d_list_alloc (void);void     d_list_free                    (DList           *list);DList*  d_list_append                  (DList           *list,void*          data);DList*  d_list_last                    (DList           *list);DList*  d_list_prepend                 (DList           *list, void*          data) ;DList*  d_list_insert                  (DList           *list,void*          data,int              position);#if 0void     d_list_free_1                  (DList           *list);#define	 d_list_free1		         d_list_free_1#endif#if 1DList*  d_list_insert_sorted           (DList           *list,void*          data,GCompareFunc      func)  ;DList*  d_list_insert_sorted_with_data (DList           *list,void* data,GCompareDataFunc  func,void* user_data)  ;DList*  d_list_insert_before           (DList           *slist,					  DList           *sibling,					  void*          data)  ;DList*  d_list_concat                  (DList           *list1,					  DList           *list2)  ;DList*  d_list_remove                  (DList           *list,					   const void*     data)  ;DList*  d_list_remove_all              (DList           *list,					   const void*     data)  ;DList*  d_list_remove_link             (DList           *list,					  DList           *link_)  ;DList*  d_list_delete_link             (DList           *list,					  DList           *link_)  ;DList*  d_list_reverse                 (DList           *list)  ;DList*  d_list_copy                    (DList           *list)  ;DList*  d_list_nth                     (DList           *list,					  unsigned int             n);DList*  d_list_find                    (DList           *list,					   const void*     data);DList*  d_list_find_custom             (DList           *list,					   const void*     data,					  GCompareFunc      func);int     d_list_position                (DList           *list,					  DList           *llink);int     d_list_index                   (DList           *list,					   const void*     data);unsigned int    d_list_length                  (DList           *list);void     d_list_foreach                 (DList           *list,					  GFunc             func,					  void*          user_data);DList*  d_list_sort                    (DList           *list,					  GCompareFunc      compare_func)  ;DList*  d_list_sort_with_data          (DList           *list,					  GCompareDataFunc  compare_func,					  void*          user_data)  ;void* d_list_nth_data                (DList           *list,					  unsigned int             n);#define  d_list_next(list)	         ((list) ? (((DList *)(list))->next) : NULL)#ifndef G_DISABLE_DEPRECATEDvoid     d_list_push_allocator          (void*	   dummy);void     d_list_pop_allocator           (void);#endif#endif/** @} end of fetion_dlist *//** * The fetion msg structure. * * \sa fx_get_msg */typedef struct _fetion_msg {    /** The send account 's uid. */	long uid;    /** The message content. */	char *message;    /** The message format. */	char *msgformat;    /** Just using in qun, this id show sended of qun. */	long ext_id;}Fetion_MSG;/** * The proxy type. * \sa PROXY_ITEM, fetion_get_proxy */typedef enum {    /** DIRECT. */    PROXY_DIRECT = 0,    /** HTTP. */    PROXY_HTTP,    /** SOCKS4. */    PROXY_SOCKS4,    /** SOCKS5. */    PROXY_SOCKS5,    PROXY_MAX}PROXY_TYPE;/** * The proxy item information structure. * * \sa fetion_get_proxy, PROXY_INFO */typedef struct _PROXY_ITEM{    /** Proxy host. */    char *host;    /** Proxy port. */    char *port;    /** User name. */    char *name;    /** User password. */    char *pwd;    /** Proxy type, which can be HTTP, SOCKS4, or SOCKS5. */    PROXY_TYPE  type; }PROXY_ITEM;/** * \defgroup fetion_blist LibFetion Contact struct Define * @{ * \sa */typedef enum{	FTION_UTYPE_UNSET = 0,        //未设置     FTION_UTYPE_PC,               //PC用户,已经注册fetion 	FTION_UTYPE_MOBLIE            //手机用户,未注册fetion } Ftion_USER_TYPE;/** * The fetion account personal info structure. * * \sa  */	typedef struct _fetion_personal {           //该结构信息可能需要分类来保存		/** nickname . */		char *nickname;                 //昵称		/** impresa . */		char *impresa;                  //心情 		/** sexuality 1 is boy, 0 is girl . */		int gender;  //1 boy, 0 girl.   //性别		/** nation. */		char *nation;                   //国家 		/** province. */		char *province;                 //洲		/** city. */		int city;                       //城市编号,需要测试		int ivr_enabled;		/** portrait address. */		int portrait_crc;		int provisioning;		/** mobile number. */		char *mobile_no;                 //手机号码		/** real name. */		char *name;                      //名称		/** birth date. */		char *birth_date;                //生日 		int birthday_valid;		/** lunar animal. */		int lunar_animal;              //生肖		/** horoscope. */		int horoscope;                 //星座		/** profile. */		char *profile;                   //爱好吗????*************		/** blood_type. */		int blood_type;                //血型 		/** occupation. */		char *occupation;                //职业		/** hobby. */		char *hobby;                     //业余爱好		/** personal_email. */		char *personal_email;            //私人邮箱		/** work_email. */		char *work_email;                //工作邮箱		/** other_email. */		char *other_email;               //其它邮箱		/** primary_email. */		int primary_email;               //主要邮箱		/** job_title. */		char *job_title;		/** home_phone. */		char *home_phone;		/** work_phone. */		char *work_phone;		/** other_phone. */		char *other_phone;		/** company. */		char *company;		/** company_website. */		char *company_website;		/** match_enabled. */		int match_enabled;		/** 0 accept sms  other show refuse sms days... */		int refuse_sms_day; 	}Fetion_Personal;/** * The fetion group structure. * * \sa fx_get_group */	typedef struct _fetion_group {  //该结构存储组信息    /** fetion group id. */		int id;             //组ID     /** fetion group name. */		char *name;         //组名称	}Fetion_Group;/** * The fetion account structure. * * \sa fx_get_account */		typedef struct _fetion_account {     /** account id. */		long id; //619369**    /** account uri. */		char *uri; //619369**@fetion.com.cn;p=2082    /** account local_name. */		char *local_name;    /** account group id, it store as string, the format is *;*;. */		char *buddy_lists;		int group_id;		int relation_status;		int online_notify;		int status_code; //200 or 400		/** account online status 		 * \sa online_event		 */		int online_status;   //sa event.h USER STATUS Event		long portrait_crc;		/** account personal info. 		 * \sa Fetion_Personal 		 */		Fetion_Personal *personal;		Ftion_USER_TYPE usr_type; //PC or moblie	}Fetion_Account;/** * The fetion black buddies list structure. * * \sa fx_get_blacklist */	typedef struct _fetion_black  {      /** account id. */		long uid;                 /** account uri. */		char *uri;             /** account local_name. */		char *local_name;	}Fetion_Black;	typedef struct _fetion_qun_member Fetion_QunMember;	struct _fetion_qun_member {  		char *uri;		long id;		char *nickname;		char *iicnickname;		int identity;		int state;		char *client_type;	};	typedef struct _fetion_qun_info Fetion_QunInfo;	struct _fetion_qun_info {  		char *uri;     		int group_attributes_version;		char* name;		int category;		char* introduce;		char* bulletin;		int	portrait_crc;		int searchable;		int current_member_count;		int limit_member_count;		char *group_activity;		DList *QunMember;	};	typedef struct _fetion_qun Fetion_Qun;	struct _fetion_qun {  		long id;         		char *uri;     		int identity;		Fetion_QunInfo *quninfo;	};/** * The fetion buddy list structure. * * \sa  */typedef struct _fetion_blist {	/** store group info.	 *	 * \sa Fetion_Group  DList  fx_get_group	 */	DList* group;	/** store account info.	 *	 * \sa Fetion_Account  DList  fx_get_account	 */	DList* account;	/** store blacked account infos.	 *	 * \sa Fetion_Black  DList  fx_get_blacklist	 */	DList* blacklist;	/** store qun infos.	 *	 * \sa Fetion_Qun  DList  fx_get_qunlist	 */	DList* qun;	/** amount accounts. */	int account_count;}Fetion_BList;	void free_fetion_personal(Fetion_Personal *personal);	void free_fetion_account(Fetion_Account *account);	void free_fetion_group(Fetion_Group *group);	Fetion_Personal *copy_fetion_personal(const Fetion_Personal *src);	Fetion_Account *copy_fetion_account(const Fetion_Account *src);	Fetion_Group *copy_fetion_group(const Fetion_Group *src);//	Fetion_BList *get_fetion_blist();	void free_fetion_blist(Fetion_BList *blist);	void fetion_blist_add_group(Fetion_BList * blist,const Fetion_Group *group);	void fetion_blist_add_account(Fetion_BList * blist,const Fetion_Account *account);	DList *fetion_blist_get_group(Fetion_BList * blist);	DList *fetion_blist_get_account(Fetion_BList * blist);	Fetion_Account *fetion_blist_get_account_by_id(Fetion_BList * blist, long id);	const char *fetion_blist_get_uri_by_id(Fetion_BList * blist, long id);	//misc....#define AUTH_WAIT  0#define AUTH_OK    1#define AUTH_REFUS 2/** @} end of fetion_blist */#ifdef __cplusplus } #endif #endif /* #ifndef __LIBFETION_LIB__ */#endif /* _LIBFETION_DATASTRUCT_H_ */

⌨️ 快捷键说明

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