#ifndef __NET_PARSER_H__ #define __NET_PARSER_H__ //#include "gsl.h" #include "net_stream_if.h" #define NET_PARSER_SUCCESSFUL 0 #define NET_PARSER_INITIALIZE_FAIL -1 #define NET_PARSER_INVALID_PARAM -2 #define NET_PARSER_FINALIZE_FAIL -3 #define NET_PARSER_ILLEGAL_REQUEST -4 #define NET_PARSER_MESSAGE_QUEUE_MODE_SEARCH_DONE 1 << 27 #define PARSER_MESSAGE_QUEUE_MESSAGE_MASK (0x0000FFFF) #define PARSER_MESSAGE_QUEUE_TYPE_MASK (0xFFFF0000) typedef enum { NET_PARSER_MESSAGE_SEARCHOBJ_DONE = 1 << 12, NET_PARSER_MESSAGE_SEARCHOBJ_FAIL, NET_PARSER_MESSAGE_SEARCHOBJ_FULL, NET_PARSER_MESSAGE_MAX } ParserMsg_t; typedef enum { PROTOCOL_TYPE_HTTP, PROTOCOL_TYPE_MAX } ProtocolType_t; typedef UINT32 RB_HANDLE; #define MW_INITIALIZE (1<<0) #define MW_DATA_PARSING (1<<1) typedef int (*ParserFunction)(char *pWorkBuf, void *pParam, UINT32 dStartIndex, UINT32 dCount); typedef struct NetParser_Cfg_t_ { UINT32 dBufSize; //default set buffer size 1M UINT32 dStartIndex; //default set startIndex 0 UINT32 dCount; //default get all data UINT32 dProtocolType; //default to http protocol UINT32 dIdentify; char *pWorkBuf; char *pUrl; void *pParam; volatile UINT32 *pdParserFlag; ParserFunction pfParserFunction; } NetParser_Cfg_t; INT32 NetParser_IF_Initialize(void); INT32 NetParser_IF_Finalize(void); INT32 NetParser_IF_CreateRequestBlock(RB_HANDLE *pHandle, NetParser_Cfg_t *pstCfg, GL_Queue_t MwQueueHandle); INT32 NetParser_IF_DestoryRequestBlock(RB_HANDLE handle); #endif