11#include " pch.h"
2- #include " P2XPProtocol_Packet .h"
2+ #include " Protocol_P2XPPacket .h"
33/* *******************************************************************
4- // Created: 2021/07/19 10:23:14
5- // File Name: D:\XEngine_Storage\XEngine_Source\XEngine_P2XPComponents\XEngine_P2XPProtocol\P2XPProtocol_Packet\P2XPProtocol_Packet .cpp
6- // File Path: D:\XEngine_Storage\XEngine_Source\XEngine_P2XPComponents\XEngine_P2XPProtocol\P2XPProtocol_Packet
7- // File Base: P2XPProtocol_Packet
4+ // Created: 2021/10/25 14:35:17
5+ // File Name: D:\XEngine_Storage\XEngine_Source\StorageModule_Protocol\Protocol_Packet\Protocol_P2XPPacket .cpp
6+ // File Path: D:\XEngine_Storage\XEngine_Source\StorageModule_Protocol\Protocol_Packet
7+ // File Base: Protocol_P2XPPacket
88// File Ext: cpp
99// Project: XEngine(网络通信引擎)
1010// Author: qyt
1111// Purpose: 打包类
1212// History:
1313*********************************************************************/
14- CP2XPProtocol_Packet::CP2XPProtocol_Packet ()
14+ CProtocol_P2XPPacket::CProtocol_P2XPPacket ()
1515{
1616
1717}
18- CP2XPProtocol_Packet ::~CP2XPProtocol_Packet ()
18+ CProtocol_P2XPPacket ::~CProtocol_P2XPPacket ()
1919{
2020
2121}
2222// ////////////////////////////////////////////////////////////////////////
2323// 公有函数
2424// ////////////////////////////////////////////////////////////////////////
2525/* *******************************************************************
26- 函数名称:P2XPProtocol_Parse_Login
27- 函数功能:登录解析函数
26+ 函数名称:Protocol_P2XPPacket_Common
27+ 函数功能:P2XP公用协议打包函数
2828 参数.一:pSt_ProtocolHdr
2929 In/Out:In
3030 类型:数据结构指针
3131 可空:N
3232 意思:输入要打包的协议头
33- 参数.二:lpszMsgBuffer
34- In/Out:In
35- 类型:常量字符指针
33+ 参数.二:ptszMsgBuffer
34+ In/Out:Out
35+ 类型:字符指针
36+ 可空:N
37+ 意思:输出打好包的缓冲区
38+ 参数.三:pInt_MsgLen
39+ In/Out:Out
40+ 类型:整数型指针
3641 可空:N
37- 意思:输入要解析的缓冲区
38- 参数.三:nMsgLen
42+ 意思:输出缓冲区大小
43+ 参数.四:nCode
3944 In/Out:In
4045 类型:整数型
41- 可空:N
42- 意思:输入缓冲区大小
43- 参数.四:pSt_P2XPPeer
46+ 可空:Y
47+ 意思:输入返回的值
48+ 参数.五:lpszMsgBuffer
4449 In/Out:In
45- 类型:数据结构指针
46- 可空:N
47- 意思:输出解析后的节点信息
50+ 类型:常量字符指针
51+ 可空:Y
52+ 意思:输入要打包的后续内容
4853返回值
4954 类型:逻辑型
5055 意思:是否成功
5156备注:
5257*********************************************************************/
53- BOOL CP2XPProtocol_Packet::P2XPProtocol_Packet_Common (XENGINE_PROTOCOLHDR* pSt_ProtocolHdr, TCHAR* ptszMsgBuffer, int * pInt_MsgLen, int nCode /* = 0 */ , LPCTSTR lpszMsgBuffer /* = NULL */ )
58+ BOOL CProtocol_P2XPPacket::Protocol_P2XPPacket_Common (XENGINE_PROTOCOLHDR* pSt_ProtocolHdr, TCHAR* ptszMsgBuffer, int * pInt_MsgLen, int nCode /* = 0 */ , LPCTSTR lpszMsgBuffer /* = NULL */ )
5459{
55- P2XPProtocol_IsErrorOccur = FALSE ;
60+ Protocol_IsErrorOccur = FALSE ;
5661
5762 if ((NULL == ptszMsgBuffer) || (NULL == pInt_MsgLen))
5863 {
59- P2XPProtocol_IsErrorOccur = TRUE ;
60- P2XPProtocol_dwErrorCode = ERROR_XENGINE_P2XP_PROTOCOL_PARAMENT ;
64+ Protocol_IsErrorOccur = TRUE ;
65+ Protocol_dwErrorCode = ERROR_XENGINE_STORAGE_PROTOCOL_PARAMENT ;
6166 return FALSE ;
6267 }
6368 Json::Value st_JsonRoot;
@@ -82,7 +87,7 @@ BOOL CP2XPProtocol_Packet::P2XPProtocol_Packet_Common(XENGINE_PROTOCOLHDR* pSt_P
8287 return TRUE ;
8388}
8489/* *******************************************************************
85- 函数名称:P2XPProtocol_Packet_Lan
90+ 函数名称:Protocol_P2XPPacket_Lan
8691函数功能:响应同步局域网地址列表
8792 参数.一:pSt_ProtocolHdr
8893 In/Out:In
@@ -114,14 +119,14 @@ BOOL CP2XPProtocol_Packet::P2XPProtocol_Packet_Common(XENGINE_PROTOCOLHDR* pSt_P
114119 意思:是否成功
115120备注:
116121*********************************************************************/
117- BOOL CP2XPProtocol_Packet::P2XPProtocol_Packet_Lan (XENGINE_PROTOCOLHDR* pSt_ProtocolHdr, XENGINE_P2XPPEER_PROTOCOL*** pppSt_ListClients, int nListCount, TCHAR* ptszMsgBuffer, int * pInt_MsgLen)
122+ BOOL CProtocol_P2XPPacket::Protocol_P2XPPacket_Lan (XENGINE_PROTOCOLHDR* pSt_ProtocolHdr, XENGINE_P2XPPEER_PROTOCOL*** pppSt_ListClients, int nListCount, TCHAR* ptszMsgBuffer, int * pInt_MsgLen)
118123{
119- P2XPProtocol_IsErrorOccur = FALSE ;
124+ Protocol_IsErrorOccur = FALSE ;
120125
121126 if ((NULL == pppSt_ListClients) || (NULL == ptszMsgBuffer) || (NULL == pInt_MsgLen))
122127 {
123- P2XPProtocol_IsErrorOccur = FALSE ;
124- P2XPProtocol_dwErrorCode = ERROR_XENGINE_P2XP_PROTOCOL_PARAMENT ;
128+ Protocol_IsErrorOccur = FALSE ;
129+ Protocol_dwErrorCode = ERROR_XENGINE_STORAGE_PROTOCOL_PARAMENT ;
125130 return FALSE ;
126131 }
127132 Json::Value st_JsonRoot;
@@ -153,7 +158,7 @@ BOOL CP2XPProtocol_Packet::P2XPProtocol_Packet_Lan(XENGINE_PROTOCOLHDR* pSt_Prot
153158 return TRUE ;
154159}
155160/* *******************************************************************
156- 函数名称:P2XPProtocol_Packet_WLan
161+ 函数名称:Protocol_P2XPPacket_WLan
157162函数功能:响应同步局域网所有地址列表
158163 参数.一:pSt_ProtocolHdr
159164 In/Out:In
@@ -180,14 +185,14 @@ BOOL CP2XPProtocol_Packet::P2XPProtocol_Packet_Lan(XENGINE_PROTOCOLHDR* pSt_Prot
180185 意思:是否成功
181186备注:
182187*********************************************************************/
183- BOOL CP2XPProtocol_Packet::P2XPProtocol_Packet_WLan (XENGINE_PROTOCOLHDR* pSt_ProtocolHdr, list<XENGINE_P2XPPEER_PROTOCOL>* pStl_ListClients, TCHAR* ptszMsgBuffer, int * pInt_MsgLen)
188+ BOOL CProtocol_P2XPPacket::Protocol_P2XPPacket_WLan (XENGINE_PROTOCOLHDR* pSt_ProtocolHdr, list<XENGINE_P2XPPEER_PROTOCOL>* pStl_ListClients, TCHAR* ptszMsgBuffer, int * pInt_MsgLen)
184189{
185- P2XPProtocol_IsErrorOccur = FALSE ;
190+ Protocol_IsErrorOccur = FALSE ;
186191
187192 if ((NULL == pStl_ListClients) || (NULL == ptszMsgBuffer) || (NULL == pInt_MsgLen))
188193 {
189- P2XPProtocol_IsErrorOccur = FALSE ;
190- P2XPProtocol_dwErrorCode = ERROR_XENGINE_P2XP_PROTOCOL_PARAMENT ;
194+ Protocol_IsErrorOccur = FALSE ;
195+ Protocol_dwErrorCode = ERROR_XENGINE_STORAGE_PROTOCOL_PARAMENT ;
191196 return FALSE ;
192197 }
193198 unordered_map<string, list<P2XPPROTOCOL_LANPACKET>> stl_MapClient;
@@ -261,7 +266,7 @@ BOOL CP2XPProtocol_Packet::P2XPProtocol_Packet_WLan(XENGINE_PROTOCOLHDR* pSt_Pro
261266 return TRUE ;
262267}
263268/* *******************************************************************
264- 函数名称:P2XPProtocol_Packet_User
269+ 函数名称:Protocol_P2XPPacket_User
265270函数功能:响应用户查询用户信息的请求协议封包函数
266271 参数.一:pSt_ProtocolHdr
267272 In/Out:In
@@ -288,14 +293,14 @@ BOOL CP2XPProtocol_Packet::P2XPProtocol_Packet_WLan(XENGINE_PROTOCOLHDR* pSt_Pro
288293 意思:是否成功
289294备注:
290295*********************************************************************/
291- BOOL CP2XPProtocol_Packet::P2XPProtocol_Packet_User (XENGINE_PROTOCOLHDR* pSt_ProtocolHdr, XENGINE_P2XPPEER_PROTOCOL* pSt_PeerInfo, TCHAR* ptszMsgBuffer, int * pInt_MsgLen)
296+ BOOL CProtocol_P2XPPacket::Protocol_P2XPPacket_User (XENGINE_PROTOCOLHDR* pSt_ProtocolHdr, XENGINE_P2XPPEER_PROTOCOL* pSt_PeerInfo, TCHAR* ptszMsgBuffer, int * pInt_MsgLen)
292297{
293- P2XPProtocol_IsErrorOccur = FALSE ;
298+ Protocol_IsErrorOccur = FALSE ;
294299
295300 if ((NULL == pSt_PeerInfo) || (NULL == ptszMsgBuffer) || (NULL == pInt_MsgLen))
296301 {
297- P2XPProtocol_IsErrorOccur = FALSE ;
298- P2XPProtocol_dwErrorCode = ERROR_XENGINE_P2XP_PROTOCOL_PARAMENT ;
302+ Protocol_IsErrorOccur = FALSE ;
303+ Protocol_dwErrorCode = ERROR_XENGINE_STORAGE_PROTOCOL_PARAMENT ;
299304 return FALSE ;
300305 }
301306 Json::Value st_JsonRoot;
@@ -328,7 +333,7 @@ BOOL CP2XPProtocol_Packet::P2XPProtocol_Packet_User(XENGINE_PROTOCOLHDR* pSt_Pro
328333 return TRUE ;
329334}
330335/* *******************************************************************
331- 函数名称:P2XPProtocol_Packet_Connect
336+ 函数名称:Protocol_P2XPPacket_Connect
332337函数功能:请求连接打包函数
333338 参数.一:pSt_ProtocolHdr
334339 In/Out:In
@@ -355,14 +360,14 @@ BOOL CP2XPProtocol_Packet::P2XPProtocol_Packet_User(XENGINE_PROTOCOLHDR* pSt_Pro
355360 意思:是否成功
356361备注:
357362*********************************************************************/
358- BOOL CP2XPProtocol_Packet::P2XPProtocol_Packet_Connect (XENGINE_PROTOCOLHDR* pSt_ProtocolHdr, XENGINE_P2XPIO_PROTOCOL* pSt_IOProtocol, TCHAR* ptszMsgBuffer, int * pInt_MsgLen)
363+ BOOL CProtocol_P2XPPacket::Protocol_P2XPPacket_Connect (XENGINE_PROTOCOLHDR* pSt_ProtocolHdr, XENGINE_P2XPIO_PROTOCOL* pSt_IOProtocol, TCHAR* ptszMsgBuffer, int * pInt_MsgLen)
359364{
360- P2XPProtocol_IsErrorOccur = FALSE ;
365+ Protocol_IsErrorOccur = FALSE ;
361366
362367 if ((NULL == ptszMsgBuffer) || (NULL == pInt_MsgLen))
363368 {
364- P2XPProtocol_IsErrorOccur = FALSE ;
365- P2XPProtocol_dwErrorCode = ERROR_XENGINE_P2XP_PROTOCOL_PARAMENT ;
369+ Protocol_IsErrorOccur = FALSE ;
370+ Protocol_dwErrorCode = ERROR_XENGINE_STORAGE_PROTOCOL_PARAMENT ;
366371 return FALSE ;
367372 }
368373 Json::Value st_JsonRoot;
@@ -386,4 +391,58 @@ BOOL CP2XPProtocol_Packet::P2XPProtocol_Packet_Connect(XENGINE_PROTOCOLHDR* pSt_
386391 memcpy (ptszMsgBuffer + sizeof (XENGINE_PROTOCOLHDR), st_JsonRoot.toStyledString ().c_str (), pSt_ProtocolHdr->unPacketSize );
387392 }
388393 return TRUE ;
394+ }
395+ /* *******************************************************************
396+ 函数名称:Protocol_P2XPPacket_QueryFile
397+ 函数功能:查询P2P文件请求函数
398+ 参数.一:ptszMsgBuffer
399+ In/Out:Out
400+ 类型:字符指针
401+ 可空:N
402+ 意思:输出组好包的请求缓冲区
403+ 参数.二:pInt_MsgLen
404+ In/Out:Out
405+ 类型:整数型指针
406+ 可空:N
407+ 意思:输出缓冲区大小
408+ 参数.三:lpszFileName
409+ In/Out:In
410+ 类型:常量字符指针
411+ 可空:Y
412+ 意思:输入要查询的文件名
413+ 参数.四:lpszFileHash
414+ In/Out:In
415+ 类型:常量字符指针
416+ 可空:Y
417+ 意思:输入要查询的文件MD5
418+ 返回值
419+ 类型:逻辑型
420+ 意思:是否成功
421+ 备注:
422+ *********************************************************************/
423+ BOOL CProtocol_P2XPPacket::Protocol_P2XPPacket_QueryFile (TCHAR* ptszMsgBuffer, int * pInt_MsgLen, LPCTSTR lpszFileName /* = NULL */ , LPCTSTR lpszFileHash /* = NULL */ )
424+ {
425+ Protocol_IsErrorOccur = FALSE ;
426+
427+ if ((NULL == ptszMsgBuffer) || (NULL == pInt_MsgLen))
428+ {
429+ Protocol_IsErrorOccur = TRUE ;
430+ Protocol_dwErrorCode = ERROR_XENGINE_STORAGE_PROTOCOL_PARAMENT;
431+ return FALSE ;
432+ }
433+ Json::Value st_JsonRoot;
434+ if (NULL != lpszFileName)
435+ {
436+ st_JsonRoot[" lpszFileName" ] = lpszFileName;
437+ }
438+ if (NULL != lpszFileHash)
439+ {
440+ st_JsonRoot[" lpszFileHash" ] = lpszFileHash;
441+ }
442+ st_JsonRoot[" unOperatorType" ] = ENUM_XENGINE_COMMUNICATION_PROTOCOL_TYPE_STORAGE;
443+ st_JsonRoot[" unOperatorCode" ] = XENGINE_COMMUNICATION_PROTOCOL_OPERATOR_CODE_STORAGE_REQQUERY;
444+ // 打包输出信息
445+ *pInt_MsgLen = st_JsonRoot.toStyledString ().length ();
446+ memcpy (ptszMsgBuffer, st_JsonRoot.toStyledString ().c_str (), *pInt_MsgLen);
447+ return TRUE ;
389448}
0 commit comments