Skip to content

Commit 8a5362c

Browse files
committed
added:queryfile parse
1 parent 2889c50 commit 8a5362c

File tree

5 files changed

+104
-0
lines changed

5 files changed

+104
-0
lines changed

XEngine_Source/XEngine_P2XPComponents/XEngine_P2XPProtocol/P2XPProtocol_Define.h

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,30 @@ extern "C" BOOL P2XPProtocol_Parse_User(LPCTSTR lpszMsgBuffer, int nMsgLen, TCHA
118118
备注:
119119
*********************************************************************/
120120
extern "C" BOOL P2XPProtocol_Parse_Connect(LPCTSTR lpszMsgBuffer, int nMsgLen, XENGINE_P2XPIO_PROTOCOL* pSt_IOProtocol);
121+
/********************************************************************
122+
函数名称:P2XPProtocol_Parse_QueryFile
123+
函数功能:查询文件
124+
参数.一:lpszMsgBuffer
125+
In/Out:In
126+
类型:常量字符指针
127+
可空:N
128+
意思:输入要解析的缓冲区
129+
参数.二:nMsgLen
130+
In/Out:In
131+
类型:整数型
132+
可空:N
133+
意思:输入缓冲区大小
134+
参数.三:pSt_ProtocolFile
135+
In/Out:Out
136+
类型:数据结构指针
137+
可空:N
138+
意思:输出解析的文件信息
139+
返回值
140+
类型:逻辑型
141+
意思:是否成功
142+
备注:
143+
*********************************************************************/
144+
extern "C" BOOL P2XPProtocol_Parse_QueryFile(LPCTSTR lpszMsgBuffer, int nMsgLen, XENGINE_PROTOCOL_FILE* pSt_ProtocolFile);
121145
/************************************************************************/
122146
/* 打包协议导出 */
123147
/************************************************************************/

XEngine_Source/XEngine_P2XPComponents/XEngine_P2XPProtocol/P2XPProtocol_Parse/P2XPProtocol_Parse.cpp

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -278,4 +278,78 @@ BOOL CP2XPProtocol_Parse::P2XPProtocol_Parse_Connect(LPCTSTR lpszMsgBuffer, int
278278
pSt_IOProtocol->bIsTcp = st_JsonRoot["bIsTcp"].asInt();
279279
}
280280
return TRUE;
281+
}
282+
/********************************************************************
283+
函数名称:P2XPProtocol_Parse_QueryFile
284+
函数功能:查询文件
285+
参数.一:lpszMsgBuffer
286+
In/Out:In
287+
类型:常量字符指针
288+
可空:N
289+
意思:输入要解析的缓冲区
290+
参数.二:nMsgLen
291+
In/Out:In
292+
类型:整数型
293+
可空:N
294+
意思:输入缓冲区大小
295+
参数.三:pSt_ProtocolFile
296+
In/Out:Out
297+
类型:数据结构指针
298+
可空:N
299+
意思:输出解析的文件信息
300+
返回值
301+
类型:逻辑型
302+
意思:是否成功
303+
备注:
304+
*********************************************************************/
305+
BOOL CP2XPProtocol_Parse::P2XPProtocol_Parse_QueryFile(LPCTSTR lpszMsgBuffer, int nMsgLen, XENGINE_PROTOCOL_FILE* pSt_ProtocolFile)
306+
{
307+
P2XPProtocol_IsErrorOccur = FALSE;
308+
309+
if ((NULL == lpszMsgBuffer) || (NULL == pSt_ProtocolFile))
310+
{
311+
P2XPProtocol_IsErrorOccur = TRUE;
312+
P2XPProtocol_dwErrorCode = ERROR_XENGINE_P2XP_PROTOCOL_PARAMENT;
313+
return FALSE;
314+
}
315+
Json::Value st_JsonRoot;
316+
Json::CharReaderBuilder st_JsonBuild;
317+
Json::CharReader* pSt_JsonReader(st_JsonBuild.newCharReader());
318+
319+
JSONCPP_STRING st_JsonError;
320+
//解析JSON
321+
if (!pSt_JsonReader->parse(lpszMsgBuffer, lpszMsgBuffer + nMsgLen, &st_JsonRoot, &st_JsonError))
322+
{
323+
P2XPProtocol_IsErrorOccur = TRUE;
324+
P2XPProtocol_dwErrorCode = ERROR_XENGINE_P2XP_PROTOCOL_PARSE;
325+
return FALSE;
326+
}
327+
delete pSt_JsonReader;
328+
pSt_JsonReader = NULL;
329+
330+
if (!st_JsonRoot["tszFileName"].isNull())
331+
{
332+
_tcscpy(pSt_ProtocolFile->tszFileName, st_JsonRoot["tszFileName"].asCString());
333+
}
334+
if (!st_JsonRoot["tszFilePath"].isNull())
335+
{
336+
_tcscpy(pSt_ProtocolFile->tszFilePath, st_JsonRoot["tszFilePath"].asCString());
337+
}
338+
if (!st_JsonRoot["tszFileHash"].isNull())
339+
{
340+
_tcscpy(pSt_ProtocolFile->tszFileHash, st_JsonRoot["tszFileHash"].asCString());
341+
}
342+
if (!st_JsonRoot["tszFileTime"].isNull())
343+
{
344+
_tcscpy(pSt_ProtocolFile->tszFileTime, st_JsonRoot["tszFileTime"].asCString());
345+
}
346+
if (!st_JsonRoot["tszFileUser"].isNull())
347+
{
348+
_tcscpy(pSt_ProtocolFile->tszFileUser, st_JsonRoot["tszFileUser"].asCString());
349+
}
350+
if (!st_JsonRoot["nFileSize"].isNull())
351+
{
352+
pSt_ProtocolFile->nFileSize = st_JsonRoot["nFileSize"].asInt();
353+
}
354+
return TRUE;
281355
}

XEngine_Source/XEngine_P2XPComponents/XEngine_P2XPProtocol/P2XPProtocol_Parse/P2XPProtocol_Parse.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ class CP2XPProtocol_Parse
2121
BOOL P2XPProtocol_Parse_List(LPCTSTR lpszMsgBuffer, int nMsgLen, TCHAR* ptszPubAddr, TCHAR* ptszPriAddr);
2222
BOOL P2XPProtocol_Parse_User(LPCTSTR lpszMsgBuffer, int nMsgLen, TCHAR* ptszUserName);
2323
BOOL P2XPProtocol_Parse_Connect(LPCTSTR lpszMsgBuffer, int nMsgLen, XENGINE_P2XPIO_PROTOCOL* pSt_IOProtocol);
24+
BOOL P2XPProtocol_Parse_QueryFile(LPCTSTR lpszMsgBuffer, int nMsgLen, XENGINE_PROTOCOL_FILE* pSt_ProtocolFile);
2425
protected:
2526
private:
2627
};

XEngine_Source/XEngine_P2XPComponents/XEngine_P2XPProtocol/XEngine_P2XPProtocol.def

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ EXPORTS
88
P2XPProtocol_Parse_List
99
P2XPProtocol_Parse_User
1010
P2XPProtocol_Parse_Connect
11+
P2XPProtocol_Parse_QueryFile
1112

1213
P2XPProtocol_Packet_Common
1314
P2XPProtocol_Packet_Lan

XEngine_Source/XEngine_P2XPComponents/XEngine_P2XPProtocol/pch.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,10 @@ extern "C" BOOL P2XPProtocol_Parse_Connect(LPCTSTR lpszMsgBuffer, int nMsgLen, X
4545
{
4646
return m_P2XPParse.P2XPProtocol_Parse_Connect(lpszMsgBuffer, nMsgLen, pSt_IOProtocol);
4747
}
48+
extern "C" BOOL P2XPProtocol_Parse_QueryFile(LPCTSTR lpszMsgBuffer, int nMsgLen, XENGINE_PROTOCOL_FILE * pSt_ProtocolFile)
49+
{
50+
return m_P2XPParse.P2XPProtocol_Parse_QueryFile(lpszMsgBuffer, nMsgLen, pSt_ProtocolFile);
51+
}
4852
/************************************************************************/
4953
/* 打包协议导出 */
5054
/************************************************************************/

0 commit comments

Comments
 (0)