Skip to content

Commit 016c22f

Browse files
committed
added:lock for protocol module
1 parent d7cc6c7 commit 016c22f

File tree

5 files changed

+105
-0
lines changed

5 files changed

+105
-0
lines changed

XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Define.h

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -372,6 +372,40 @@ extern "C" BOOL ModuleProtocol_Packet_LanguageQuery(TCHAR* ptszMsgBuffer, int* p
372372
*********************************************************************/
373373
extern "C" BOOL ModuleProtocol_Packet_LanguageQuery2(TCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_LANGUAGEINFO* pSt_LanguageInfo, int nCode = 0);
374374
/********************************************************************
375+
函数名称:ModuleProtocol_Packet_Locker
376+
函数功能:分布式锁协议打包函数
377+
参数.一:ptszMsgBuffer
378+
In/Out:Out
379+
类型:字符指针
380+
可空:N
381+
意思:输出打包的数据信息
382+
参数.二:pInt_MsgLen
383+
In/Out:Out
384+
类型:整数型指针
385+
可空:N
386+
意思:输出打包大小
387+
参数.三:xhToken
388+
In/Out:In
389+
类型:句柄
390+
可空:N
391+
意思:输入要打包的数据
392+
参数.四:nCode
393+
In/Out:In
394+
类型:整数型
395+
可空:Y
396+
意思:输入返回的值
397+
参数.五:lpszMsgBuffer
398+
In/Out:In
399+
类型:常量字符指针
400+
可空:Y
401+
意思:输入操作结果
402+
返回值
403+
类型:逻辑型
404+
意思:是否成功
405+
备注:
406+
*********************************************************************/
407+
extern "C" BOOL ModuleProtocol_Packet_Locker(TCHAR* ptszMsgBuffer, int* pInt_MsgLen, XNETHANDLE xhToken, int nCode = 0, LPCTSTR lpszMsgBuffer = NULL);
408+
/********************************************************************
375409
函数名称:ModuleProtocol_Packet_P2PLan
376410
函数功能:响应同步局域网地址列表
377411
参数.一:ptszMsgBuffer

XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Packet/ModuleProtocol_Packet.cpp

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -685,6 +685,71 @@ BOOL CModuleProtocol_Packet::ModuleProtocol_Packet_LanguageQuery2(TCHAR* ptszMsg
685685
return TRUE;
686686
}
687687
/********************************************************************
688+
函数名称:ModuleProtocol_Packet_Locker
689+
函数功能:分布式锁协议打包函数
690+
参数.一:ptszMsgBuffer
691+
In/Out:Out
692+
类型:字符指针
693+
可空:N
694+
意思:输出打包的数据信息
695+
参数.二:pInt_MsgLen
696+
In/Out:Out
697+
类型:整数型指针
698+
可空:N
699+
意思:输出打包大小
700+
参数.三:xhToken
701+
In/Out:In
702+
类型:句柄
703+
可空:N
704+
意思:输入要打包的数据
705+
参数.四:nCode
706+
In/Out:In
707+
类型:整数型
708+
可空:Y
709+
意思:输入返回的值
710+
参数.五:lpszMsgBuffer
711+
In/Out:In
712+
类型:常量字符指针
713+
可空:Y
714+
意思:输入操作结果
715+
返回值
716+
类型:逻辑型
717+
意思:是否成功
718+
备注:
719+
*********************************************************************/
720+
BOOL CModuleProtocol_Packet::ModuleProtocol_Packet_Locker(TCHAR* ptszMsgBuffer, int* pInt_MsgLen, XNETHANDLE xhToken, int nCode, LPCTSTR lpszMsgBuffer)
721+
{
722+
ModuleProtocol_IsErrorOccur = FALSE;
723+
724+
if ((NULL == ptszMsgBuffer) || (NULL == pInt_MsgLen))
725+
{
726+
ModuleProtocol_IsErrorOccur = TRUE;
727+
ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PACKET_PARAMENT;
728+
return FALSE;
729+
}
730+
Json::Value st_JsonRoot;
731+
Json::Value st_JsonObject;
732+
Json::StreamWriterBuilder st_JsonBuilder;
733+
734+
st_JsonObject["xhToken"] = xhToken;
735+
736+
st_JsonRoot["code"] = nCode;
737+
if (NULL == lpszMsgBuffer)
738+
{
739+
st_JsonRoot["msg"] = "success";
740+
}
741+
else
742+
{
743+
st_JsonRoot["msg"] = lpszMsgBuffer;
744+
}
745+
st_JsonRoot["data"] = st_JsonObject;
746+
st_JsonBuilder["emitUTF8"] = true;
747+
748+
*pInt_MsgLen = Json::writeString(st_JsonBuilder, st_JsonRoot).length();
749+
memcpy(ptszMsgBuffer, Json::writeString(st_JsonBuilder, st_JsonRoot).c_str(), *pInt_MsgLen);
750+
return TRUE;
751+
}
752+
/********************************************************************
688753
函数名称:ModuleProtocol_Packet_P2PLan
689754
函数功能:响应同步局域网地址列表
690755
参数.一:ptszMsgBuffer

XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Packet/ModuleProtocol_Packet.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ class CModuleProtocol_Packet
3333
BOOL ModuleProtocol_Packet_BankQuery2(TCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_BANKINFO* pSt_BankInfo, int nCode = 0);
3434
BOOL ModuleProtocol_Packet_LanguageQuery(TCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_LANGUAGEINFO* pSt_LanguageInfo, int nCode = 0, LPCTSTR lpszMsgBuffer = NULL);
3535
BOOL ModuleProtocol_Packet_LanguageQuery2(TCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_LANGUAGEINFO* pSt_LanguageInfo, int nCode = 0);
36+
BOOL ModuleProtocol_Packet_Locker(TCHAR* ptszMsgBuffer, int* pInt_MsgLen, XNETHANDLE xhToken, int nCode = 0, LPCTSTR lpszMsgBuffer = NULL);
3637
public:
3738
BOOL ModuleProtocol_Packet_P2PLan(TCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_P2XPPEER_PROTOCOL*** pppSt_ListClients, int nListCount);
3839
BOOL ModuleProtocol_Packet_P2PWLan(TCHAR* ptszMsgBuffer, int* pInt_MsgLen, list<XENGINE_P2XPPEER_PROTOCOL>* pStl_ListClients);

XEngine_Source/XEngine_ModuleProtocol/XEngine_ModuleProtocol.def

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ EXPORTS
1414
ModuleProtocol_Packet_BankQuery2
1515
ModuleProtocol_Packet_LanguageQuery
1616
ModuleProtocol_Packet_LanguageQuery2
17+
ModuleProtocol_Packet_Locker
1718
ModuleProtocol_Packet_P2PLan
1819
ModuleProtocol_Packet_P2PWLan
1920
ModuleProtocol_Packet_P2PUser

XEngine_Source/XEngine_ModuleProtocol/pch.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,10 @@ extern "C" BOOL ModuleProtocol_Packet_LanguageQuery2(TCHAR * ptszMsgBuffer, int*
7575
{
7676
return m_ProtocolPacket.ModuleProtocol_Packet_LanguageQuery2(ptszMsgBuffer, pInt_MsgLen, pSt_LanguageInfo, nCode);
7777
}
78+
extern "C" BOOL ModuleProtocol_Packet_Locker(TCHAR * ptszMsgBuffer, int* pInt_MsgLen, XNETHANDLE xhToken, int nCode, LPCTSTR lpszMsgBuffer)
79+
{
80+
return m_ProtocolPacket.ModuleProtocol_Packet_Locker(ptszMsgBuffer, pInt_MsgLen, xhToken, nCode, lpszMsgBuffer);
81+
}
7882
extern "C" BOOL ModuleProtocol_Packet_P2PLan(TCHAR * ptszMsgBuffer, int* pInt_MsgLen, XENGINE_P2XPPEER_PROTOCOL * **pppSt_ListClients, int nListCount)
7983
{
8084
return m_ProtocolPacket.ModuleProtocol_Packet_P2PLan(ptszMsgBuffer, pInt_MsgLen, pppSt_ListClients, nListCount);

0 commit comments

Comments
 (0)