123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150 |
- #ifndef __NET_UTIL_H__
- #define __NET_UTIL_H__
- #ifdef NET_UTIL_IMPLEMENTATION
- #define NET_UTIL_EXTERN
- #else
- #define NET_UTIL_EXTERN extern
- #endif
- #define MAX_TRANS_SIZE (1024*8) //16KB
- #define NET_URL_MAX_SIZE (256)
- typedef struct NetMemCtrlBlock_t_
- {
- GL_MEMPOOL_t MemPool; /*<! memory pool handle*/
- UINT8* pMemAdd; /*<! memory pool start address*/
- UINT32 dLock; /*<! memory pool lock, for monitor memory use flow*/
- } NetMemCtrlBlock_t;
- #define NETUTIL_IF_ERROR_FIND_LIST -7
- #define NETUTIL_IF_WARNING_ARRAY_OVERFLOW -6
- #define NETUTIL_IF_INITIALIZE_FAIL -5
- #define NETUTIL_IF_ERROR_COMBIN_LISTNODE -4
- #define NETUTIL_IF_INVALID_PARAMETER -3
- #define NETUTIL_IF_ERROR_SWITCH_NATIVE_UTF8 -2
- #define NETUTIL_IF_MEMORYALLOCFAIL -1
- #define NETUTIL_IF_SUCCESSFUL 0
- #define NETUTIL_IF_WARNING_NOT_COFIG_FUNC 1
- #define NETUTIL_IF_WARNING_DATA_NOT_READY 2
- #if 0
- typedef struct chain_head
- {
- UINT32 dIdenty;
- struct chain_head *pNext;
- struct chain_head *pPrev;
- } chain_head;
- #define CHAIN_HEAD(name) chain_head name = INIT_LIST_HEAD(name)
- #define INIT_CHAIN_HEAD(ptr) do{ \
- (ptr)->next = (ptr); (ptr)->prev = (ptr); \
- }while(0)
- #define chain_entry(ptr, type, member) \
- container_of(ptr, type, member)
- #define container_of(ptr, type, member) ({
\
- const typeof(((type*)0->member) *__mptr = (ptr); \
- (type *)((char *)__mptr) - offsetof(type, member));})
- #define offsetof(TYPE, MEMBER) ((size_t)&(TYPE *)0->MEMBER)
- #endif
- #define PARAM_MATCH_SUCCESS 1
- #define PARAM_MATCH_FAIL 0
- typedef int (*ListObjFreeFunction)(void *pMember, void *pParam);
- typedef int (*ListMatchFunction)(void *pMember, void *pParam); //if matched return 1,else return 0
- typedef int (*ListInsertCondFunc)(void *pMember, void *pInsertMember); //if satisfy return 1,others return 0
- typedef int (*MemberChkAttrFunc)(void *pMember); //if attribute satisfy return 1,else return 0
- typedef int (*MemberBuFunc)(void *pMember, void *pParam, void **ppMember); //backup member need attribute
- typedef int (*SortCompareFunc)(void *pMember1, void *pMember2); //if member1 > member2 return 1,else if pMember1 < pMember2 return -1, else return 0
- typedef int (*MemberChkRepeat)(void *pMember, void *pParam); //if attribute of pmember satify pParam return 1,others return 0;
- typedef struct ListCfg_t_
- {
- ListMatchFunction pfMatchFunc; //match funtion
- ListInsertCondFunc pfCondFunc; //instert condition,be used for insert obj to list.
- MemberChkAttrFunc pfChkAttrFunc; //attribute check funtion, be used for check some member whether marked.
- MemberBuFunc pfBuFunc; //backup member function, be used for backup be copyed obj.
- SortCompareFunc *pfCompFunc; //compare function,
- MemberChkRepeat pfChkReFunc; //repeat check function.
- ListObjFreeFunction pfMemFreeFunc; //memory Free Func,
- } ListCfg_t;
- typedef struct ListHead_struct ListHead_t;
- struct ListHead_struct
- {
- ListHead_t *pNext, *pPrev;
- };
- typedef struct DLink_st DLink;
- NET_UTIL_EXTERN void Net_Util_MemFree(NetMemCtrlBlock_t* pMemCB,void * pAddr);
- NET_UTIL_EXTERN void *Net_Util_MemCalloc(NetMemCtrlBlock_t* pMemCB,UINT32 dSize);
- NET_UTIL_EXTERN void *Net_Util_MemAlloc(NetMemCtrlBlock_t* pMemCB,UINT32 dSize);
- NET_UTIL_EXTERN void *Net_Util_MemRealloc(NetMemCtrlBlock_t* pMemCB,void *pAddr,UINT32 dSize);
- NET_UTIL_EXTERN INT32 Net_Util_MemInitialize(NetMemCtrlBlock_t* pMemCB, char *pszName, UINT32 dMEMPoolSize);
- NET_UTIL_EXTERN void Net_Util_MemFinalize(NetMemCtrlBlock_t* pMemCB);
- NET_UTIL_EXTERN INT32 Net_Util_Native2Utf8(char *pSrcStr, char *pDestStr, UINT32 dDstBuflen, int sdEncoding);
- NET_UTIL_EXTERN INT32 Net_Util_ConvertURLText(const char* pszScr, char* pszDes);
- NET_UTIL_EXTERN DLink *Net_Util_CreateList(ListCfg_t *pfCfg);
- NET_UTIL_EXTERN INT32 Net_Util_CheckDListInit(DLink *dl);
- NET_UTIL_EXTERN ListHead_t *Net_Util_GetDListHead(DLink *dl);
- NET_UTIL_EXTERN INT32 Net_Util_CheckMemberExist(DLink *dl, void *pParam, UINT32 *pdExist);
- NET_UTIL_EXTERN INT32 Net_Util_GetListMemberCnt(DLink *dl, UINT32 *pdCnt);
- NET_UTIL_EXTERN INT32 Net_Util_AddObj2ListHead(void *pMember, DLink *dl);
- NET_UTIL_EXTERN INT32 Net_Util_AddObj2ListTail(void *pMember, DLink *dl);
- NET_UTIL_EXTERN INT32 Net_Util_InsertObj2ListWithRepeatDetach(void *pMember, DLink *dl);
- NET_UTIL_EXTERN INT32 Net_Util_InsertObj2AscendSortedList(void *pMember, DLink *dl);
- NET_UTIL_EXTERN INT32 Net_Util_InsertObj2DescendSortedList(void *pMember, DLink *dl);
- NET_UTIL_EXTERN INT32 Net_Util_InsertObj2AscendSortedListWithRepeatDetach(void *pMember, DLink *dl);
- NET_UTIL_EXTERN INT32 Net_Util_InsertObj2DescendSortedListWithRepeatDetach(void *pMember, DLink *dl);
- NET_UTIL_EXTERN INT32 Net_Util_InsertObj2PosBefore(void *pMember, ListHead_t *pPosition);
- NET_UTIL_EXTERN INT32 Net_Util_InsertObj2PosAfter(void *pMember, ListHead_t *pPosition, ListHead_t *pHead);
- NET_UTIL_EXTERN INT32 Net_Util_InsertObj2CondBefore(DLink *dl, void *pInsertMember);
- NET_UTIL_EXTERN INT32 Net_Util_InsertObj2CondAfter(DLink *dl, void *pInsertMember);
- NET_UTIL_EXTERN INT32 Net_Util_InsertObj2ObjBefore(DLink *dl, void *pInsertMember, void *pParam);
- NET_UTIL_EXTERN INT32 Net_Util_InsertObj2ObjAfter(DLink * dl, void * pInsertMember, void * pParam);
- NET_UTIL_EXTERN void *Net_Util_GetMemberById(DLink *dl, void *pParam);
- NET_UTIL_EXTERN void *Net_Util_GetMemberByOffset(DLink *dl, UINT32 dOffset);
- NET_UTIL_EXTERN ListHead_t *Net_Util_GetMemberPos(DLink *dl, void *pMember);
- NET_UTIL_EXTERN INT32 Net_Util_GetMemberOffset(DLink *dl, void *pMember, UINT32 *pdOffset);
- NET_UTIL_EXTERN void *Net_Util_GetMemberByPos(DLink *dl, ListHead_t *pPosition);
- NET_UTIL_EXTERN ListHead_t *Net_Util_GetPosById(DLink *dl, void *pParam);
- NET_UTIL_EXTERN void *Net_Util_Get1stMember(DLink *dl);
- NET_UTIL_EXTERN DLink * Net_Util_SplitList(DLink *dl, ListHead_t *pPos);
- NET_UTIL_EXTERN INT32 Net_Util_MoveNode2ListHead(DLink *dl, void *pMember);
- NET_UTIL_EXTERN INT32 Net_Util_MoveNode2ListTail(DLink *dl, void *pMember);
- NET_UTIL_EXTERN INT32 Net_Util_RemoveNodeByOffset(DLink *dl, UINT32 dOffset, void *pParam);
- NET_UTIL_EXTERN INT32 Net_Util_Remove1stNode(DLink *dl, void *pParam);
- NET_UTIL_EXTERN INT32 Net_Util_RemoveTailNode(DLink *dl, void *pParam);
- NET_UTIL_EXTERN INT32 Net_Util_RemoveNodeByPos(DLink *dl, ListHead_t *pPosition, void *pParam);
- NET_UTIL_EXTERN INT32 Net_Util_RemoveObjFromList(DLink*dl, void *pId, void *pParam);
- NET_UTIL_EXTERN INT32 Net_Util_Remove1stObjFromListByCond(DLink *dl, void *pParam);
- NET_UTIL_EXTERN INT32 Net_Util_RemoveAllObjsFromList(DLink *dl, void *pParam);
- NET_UTIL_EXTERN INT32 Net_Util_RemoveObjsFromListByCond(DLink *dl, void *pParam);
- NET_UTIL_EXTERN INT32 Net_Util_DestroyList(DLink *dl, void *pParam);
- NET_UTIL_EXTERN INT32 Net_Util_BackUpList(DLink *pListA, DLink *pListB, void *pParam);
- NET_UTIL_EXTERN INT32 Net_Util_BackUpListByCond(DLink *pListA, DLink *pListB, void *pParam);
- NET_UTIL_EXTERN INT32 Net_Util_AddList2List(DLink *pSrcList, DLink *pDesList, void *pParam);
- NET_UTIL_EXTERN INT32 Net_Util_AddList2AscendSortedList(DLink *pSrcList, DLink *pDesList, void *pParam);
- NET_UTIL_EXTERN INT32 Net_Util_AddList2DescendSortedList(DLink *pSrcList, DLink *pDesList, void *pParam);
- NET_UTIL_EXTERN INT32 Net_Util_AddList2ListByCond(DLink *pSrcList, DLink *pDesList, void *pParam);
- NET_UTIL_EXTERN INT32 Net_Util_AddList2AscendSortedListWitchCondDetach(DLink * pSrcList, DLink * pDesList, void *pParam);
- NET_UTIL_EXTERN INT32 Net_Util_AddList2DescendSortedListWitchCondDetach(DLink * pSrcList, DLink * pDesList, void *pParam);
- NET_UTIL_EXTERN INT32 Net_Util_AddList2ListWithEqualDetach(DLink * pSrcList, DLink * pDesList, void *pParam);
- NET_UTIL_EXTERN INT32 Net_Util_AddList2ListWithEqualAndCondDetach(DLink * pSrcList, DLink * pDesList, void *pParam);
- NET_UTIL_EXTERN INT32 Net_Util_AddList2AscendSortedListWithEqualAndCondDetach(DLink * pSrcList, DLink * pDesList, void *pParam);
- NET_UTIL_EXTERN INT32 Net_Util_AddList2DescendSortedListWithEqualAndCondDetach(DLink * pSrcList, DLink * pDesList, void *pParam);
- NET_UTIL_EXTERN void *Net_Util_RandPlayMember(DLink *dl);
- NET_UTIL_EXTERN INT32 Net_Util_SortListByDescend(DLink *dl);
- NET_UTIL_EXTERN INT32 Net_Util_SortListByAscend(DLink *dl);
- //NET_UTIL_EXTERN INT32 Net_Util_DestroyBackupList(ListHead_t *pHead);
- NET_UTIL_EXTERN INT32 Net_Util_ReverseList(DLink *dl);
- #endif
|