Skip to content

Commit 8794d7d

Browse files
committed
added:Distributed lock
1 parent 016c22f commit 8794d7d

File tree

10 files changed

+187
-8
lines changed

10 files changed

+187
-8
lines changed

XEngine_Source/XEngine_ModuleHelp/Makefile

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ LOADBIN = -L /usr/local/lib/XEngine_Release/XEngine_BaseLib
88
LIB = -lXEngine_BaseLib -lopencc
99
LIBEX = -ldl -lpthread
1010
LOADSO = -Wl,-rpath=./,--disable-new-dtags
11-
LIBINCLUDE = ModuleHelp_IDCard.o ModuleHelp_Language.o ModuleHelp_P2PClient.o pch.o
11+
LIBINCLUDE = ModuleHelp_IDCard.o ModuleHelp_Language.o ModuleHelp_P2PClient.o ModuleHelp_Locker.o pch.o
1212

1313
ifeq ($(shell uname),Darwin)
1414
SHAREDLL = dylib
@@ -43,6 +43,8 @@ ModuleHelp_Language.o:./ModuleHelp_Language/ModuleHelp_Language.cpp
4343
$(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(INCLUDE) ./ModuleHelp_Language/ModuleHelp_Language.cpp
4444
ModuleHelp_P2PClient.o:./ModuleHelp_P2PClient/ModuleHelp_P2PClient.cpp
4545
$(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(INCLUDE) ./ModuleHelp_P2PClient/ModuleHelp_P2PClient.cpp
46+
ModuleHelp_Locker.o:./ModuleHelp_Locker/ModuleHelp_Locker.cpp
47+
$(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(INCLUDE) ./ModuleHelp_Locker/ModuleHelp_Locker.cpp
4648

4749
pch.o:./pch.cpp
4850
$(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(INCLUDE) ./pch.cpp

XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/Makefile

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ LIB = -lXEngine_BaseLib -lXEngine_Algorithm -lXEngine_Core -lXEngine_ManagePool
1010
LIBEX = -ldl -lpthread
1111
LOADSO = -Wl,-rpath=./,--disable-new-dtags
1212
LIBINCLUDE = XEngine_Configure.o XEngine_Network.o XEngine_HTTPTask.o XEngine_PluginTask.o XEngine_HttpApp.o \
13-
HTTPTask_IPInfo.o HTTPTask_IDCard.o HTTPTask_Phone.o HTTPTask_Bank.o HTTPTask_Language.o HTTPTask_Translation.o HTTPTask_P2PClient.o HTTPTask_OPtions.o HTTPTask_CDKey.o
13+
HTTPTask_IPInfo.o HTTPTask_IDCard.o HTTPTask_Phone.o HTTPTask_Bank.o HTTPTask_Language.o HTTPTask_Translation.o HTTPTask_P2PClient.o HTTPTask_OPtions.o HTTPTask_CDKey.o HTTPTask_Locker.o
1414

1515
ifeq ($(shell uname),Darwin)
1616
LOADSO =
@@ -60,6 +60,8 @@ HTTPTask_OPtions.o:./XEngine_HTTPTask/HTTPTask_OPtions.cpp
6060
$(CC) $(DEBUG) $(FLAGS) $(UNICODE) ./XEngine_HTTPTask/HTTPTask_OPtions.cpp
6161
HTTPTask_CDKey.o:./XEngine_HTTPTask/HTTPTask_CDKey.cpp
6262
$(CC) $(DEBUG) $(FLAGS) $(UNICODE) ./XEngine_HTTPTask/HTTPTask_CDKey.cpp
63+
HTTPTask_Locker.o:./XEngine_HTTPTask/HTTPTask_Locker.cpp
64+
$(CC) $(DEBUG) $(FLAGS) $(UNICODE) ./XEngine_HTTPTask/HTTPTask_Locker.cpp
6365

6466
XEngine_HttpApp.o:./XEngine_HttpApp.cpp
6567
$(CC) $(DEBUG) $(FLAGS) $(UNICODE) ./XEngine_HttpApp.cpp

XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask.cpp

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,13 +89,16 @@ BOOL XEngine_HTTPTask_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCTSTR
8989
LPCTSTR lpszFuncName = _T("api");
9090
LPCTSTR lpszParamFuncKey = _T("function");
9191
LPCTSTR lpszParamName = _T("params1");
92+
//get
9293
LPCTSTR lpszParamOPtions = _T("options");
9394
LPCTSTR lpszParamIPAddr = _T("ip");
9495
LPCTSTR lpszParamIDCard = _T("id");
9596
LPCTSTR lpszParamPhone = _T("phone");
9697
LPCTSTR lpszParamBank = _T("bank");
9798
LPCTSTR lpszParamLanguage = _T("language");
9899
LPCTSTR lpszParamTranslation = _T("translation");
100+
LPCTSTR lpszParamLocker = _T("lock");
101+
//post
99102
LPCTSTR lpszParamP2PClient = _T("p2p");
100103
LPCTSTR lpszParamCDKey = _T("cdkey");
101104

@@ -329,6 +332,31 @@ BOOL XEngine_HTTPTask_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCTSTR
329332
BaseLib_OperatorString_GetKeyValue(pptszList[3], "=", tszKey, tszCvtType);
330333
XEngine_HTTPTask_Translation(lpszClientAddr, tszValue, _ttoi(tszGetType), _ttoi(tszCvtType));
331334
}
335+
else if (0 == _tcsnicmp(lpszParamLocker, tszValue, _tcslen(lpszParamLocker)))
336+
{
337+
//是不是分布式锁
338+
TCHAR tszLockToken[128];
339+
TCHAR tszLockType[64];
340+
341+
memset(tszKey, '\0', sizeof(tszKey));
342+
memset(tszValue, '\0', sizeof(tszValue));
343+
memset(tszLockToken, '\0', sizeof(tszLockToken));
344+
memset(tszLockType, '\0', sizeof(tszLockType));
345+
346+
BaseLib_OperatorString_GetKeyValue(pptszList[1], "=", tszKey, tszLockType);
347+
if (0 != _tcsnicmp(lpszParamName, tszKey, _tcslen(lpszParamName)))
348+
{
349+
st_HDRParam.nHttpCode = 404;
350+
RfcComponents_HttpServer_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam);
351+
XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen);
352+
BaseLib_OperatorMemory_Free((XPPPMEM)&pptszList, nListCount);
353+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri);
354+
return FALSE;
355+
}
356+
memset(tszKey, '\0', sizeof(tszKey));
357+
BaseLib_OperatorString_GetKeyValue(pptszList[2], "=", tszKey, tszLockToken);
358+
XEngine_HTTPTask_Locker(lpszClientAddr, _ttoi64(tszLockToken), (ENUM_XENGINE_APISERVICE_LOCKER_TYPE)_ttoi(tszLockType));
359+
}
332360
}
333361
else
334362
{
Lines changed: 124 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,124 @@
1+
#include "../XEngine_Hdr.h"
2+
3+
BOOL XEngine_HTTPTask_Locker(LPCTSTR lpszClientAddr, __int64x xhToken, ENUM_XENGINE_APISERVICE_LOCKER_TYPE enLockType)
4+
{
5+
int nSDLen = 4096;
6+
int nRVLen = 4096;
7+
TCHAR tszSDBuffer[4096];
8+
TCHAR tszRVBuffer[4096];
9+
RFCCOMPONENTS_HTTP_HDRPARAM st_HDRParam; //发送给客户端的参数
10+
11+
memset(tszSDBuffer, '\0', sizeof(tszSDBuffer));
12+
memset(tszRVBuffer, '\0', sizeof(tszRVBuffer));
13+
memset(&st_HDRParam, '\0', sizeof(RFCCOMPONENTS_HTTP_HDRPARAM));
14+
15+
st_HDRParam.nHttpCode = 200; //HTTP CODE码
16+
st_HDRParam.bIsClose = TRUE; //收到回复后就关闭
17+
if (ENUM_XENGINE_APISERVICE_LOCKER_TYPE_CREATE == enLockType)
18+
{
19+
//创建
20+
XNETHANDLE xhToken = 0;
21+
ModuleHelp_Locker_Create(&xhToken);
22+
ModuleProtocol_Packet_Locker(tszRVBuffer, &nRVLen, xhToken);
23+
RfcComponents_HttpServer_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen);
24+
XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen);
25+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _T("客户端:%s,请求创建锁成功,锁句柄:%lld"), lpszClientAddr, xhToken);
26+
}
27+
else if (ENUM_XENGINE_APISERVICE_LOCKER_TYPE_OPEN == enLockType)
28+
{
29+
//打开
30+
if (!ModuleHelp_Locker_OPen(xhToken))
31+
{
32+
DWORD dwRet = ModuleProtocol_GetLastError();
33+
ModuleProtocol_Packet_Locker(tszRVBuffer, &nRVLen, xhToken, dwRet, "request is failed");
34+
RfcComponents_HttpServer_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen);
35+
XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen);
36+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _T("客户端:%s,请求打开锁失败,锁句柄:%lld,错误码:%lX"), lpszClientAddr, xhToken, dwRet);
37+
return FALSE;
38+
}
39+
ModuleProtocol_Packet_Locker(tszRVBuffer, &nRVLen, xhToken);
40+
RfcComponents_HttpServer_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen);
41+
XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen);
42+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _T("客户端:%s,请求打开锁成功,锁句柄:%lld"), lpszClientAddr, xhToken);
43+
}
44+
else if (ENUM_XENGINE_APISERVICE_LOCKER_TYPE_CLOSE == enLockType)
45+
{
46+
ModuleHelp_Locker_Close(xhToken);
47+
ModuleProtocol_Packet_Locker(tszRVBuffer, &nRVLen, xhToken);
48+
RfcComponents_HttpServer_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam);
49+
XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen);
50+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _T("客户端:%s,请求关闭锁成功,锁句柄:%lld"), lpszClientAddr, xhToken);
51+
}
52+
else if (ENUM_XENGINE_APISERVICE_LOCKER_TYPE_READ == enLockType)
53+
{
54+
if (!ModuleHelp_Locker_ReadLock(xhToken))
55+
{
56+
DWORD dwRet = ModuleProtocol_GetLastError();
57+
ModuleProtocol_Packet_Locker(tszRVBuffer, &nRVLen, xhToken, dwRet, "request is failed");
58+
RfcComponents_HttpServer_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen);
59+
XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen);
60+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _T("客户端:%s,请求读加锁失败,锁句柄:%lld,错误码:%lX"), lpszClientAddr, xhToken, dwRet);
61+
return FALSE;
62+
}
63+
ModuleProtocol_Packet_Locker(tszRVBuffer, &nRVLen, xhToken);
64+
RfcComponents_HttpServer_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam);
65+
XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen);
66+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _T("客户端:%s,请求读加锁成功,锁句柄:%lld"), lpszClientAddr, xhToken);
67+
}
68+
else if (ENUM_XENGINE_APISERVICE_LOCKER_TYPE_UNREAD == enLockType)
69+
{
70+
if (!ModuleHelp_Locker_ReadUNLock(xhToken))
71+
{
72+
DWORD dwRet = ModuleProtocol_GetLastError();
73+
ModuleProtocol_Packet_Locker(tszRVBuffer, &nRVLen, xhToken, dwRet, "request is failed");
74+
RfcComponents_HttpServer_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen);
75+
XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen);
76+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _T("客户端:%s,请求读解锁失败,锁句柄:%lld,错误码:%lX"), lpszClientAddr, xhToken, dwRet);
77+
return FALSE;
78+
}
79+
ModuleProtocol_Packet_Locker(tszRVBuffer, &nRVLen, xhToken);
80+
RfcComponents_HttpServer_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam);
81+
XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen);
82+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _T("客户端:%s,请求读解锁成功,锁句柄:%lld"), lpszClientAddr, xhToken);
83+
}
84+
else if (ENUM_XENGINE_APISERVICE_LOCKER_TYPE_WRITE == enLockType)
85+
{
86+
if (!ModuleHelp_Locker_WriteLock(xhToken))
87+
{
88+
DWORD dwRet = ModuleProtocol_GetLastError();
89+
ModuleProtocol_Packet_Locker(tszRVBuffer, &nRVLen, xhToken, dwRet, "request is failed");
90+
RfcComponents_HttpServer_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen);
91+
XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen);
92+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _T("客户端:%s,请求写加锁失败,锁句柄:%lld,错误码:%lX"), lpszClientAddr, xhToken, dwRet);
93+
return FALSE;
94+
}
95+
ModuleProtocol_Packet_Locker(tszRVBuffer, &nRVLen, xhToken);
96+
RfcComponents_HttpServer_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam);
97+
XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen);
98+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _T("客户端:%s,请求写加锁成功,锁句柄:%lld"), lpszClientAddr, xhToken);
99+
}
100+
else if (ENUM_XENGINE_APISERVICE_LOCKER_TYPE_UNWRITE == enLockType)
101+
{
102+
if (!ModuleHelp_Locker_WriteUNLock(xhToken))
103+
{
104+
DWORD dwRet = ModuleProtocol_GetLastError();
105+
ModuleProtocol_Packet_Locker(tszRVBuffer, &nRVLen, xhToken, dwRet, "request is failed");
106+
RfcComponents_HttpServer_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen);
107+
XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen);
108+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _T("客户端:%s,请求写解锁失败,锁句柄:%lld,错误码:%lX"), lpszClientAddr, xhToken, dwRet);
109+
return FALSE;
110+
}
111+
ModuleProtocol_Packet_Locker(tszRVBuffer, &nRVLen, xhToken);
112+
RfcComponents_HttpServer_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam);
113+
XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen);
114+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _T("客户端:%s,请求写解锁成功,锁句柄:%lld"), lpszClientAddr, xhToken);
115+
}
116+
else
117+
{
118+
st_HDRParam.nHttpCode = 404;
119+
RfcComponents_HttpServer_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam);
120+
XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen);
121+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _T("客户端:%s,请求了一条未知的子协议:%d"), lpszClientAddr, enLockType);
122+
}
123+
return TRUE;
124+
}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
#pragma once
2+
3+
BOOL XEngine_HTTPTask_Locker(LPCTSTR lpszClientAddr,__int64x nToken, ENUM_XENGINE_APISERVICE_LOCKER_TYPE enLockType);

XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_P2PClient.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ BOOL XEngine_HTTPTask_P2PClient(LPCTSTR lpszClientAddr, LPCTSTR lpszMsgBuffer, i
2525

2626
if (!ModuleProtocol_Parse_P2PClient(lpszMsgBuffer, nMsgLen, &st_ClientPeer.st_PeerAddr))
2727
{
28-
ModuleProtocol_Packet_P2PCommon(tszRVBuffer, &nRVLen, 400, "协议错误");
28+
ModuleProtocol_Packet_Common(tszRVBuffer, &nRVLen, 400, "协议错误");
2929
RfcComponents_HttpServer_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen);
3030
XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen);
3131
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("HTTP客户端:%s,处理登录错误,解析协议失败,错误码:%lX"), lpszClientAddr, ModuleProtocol_GetLastError());
@@ -46,13 +46,13 @@ BOOL XEngine_HTTPTask_P2PClient(LPCTSTR lpszClientAddr, LPCTSTR lpszMsgBuffer, i
4646
_tcscpy(st_ClientPeer.st_PeerAddr.tszConnectAddr, lpszClientAddr);
4747
if (!ModuleHelp_P2PClient_Add(&st_ClientPeer))
4848
{
49-
ModuleProtocol_Packet_P2PCommon(tszRVBuffer, &nRVLen, 500, "内部错误");
49+
ModuleProtocol_Packet_Common(tszRVBuffer, &nRVLen, 500, "内部错误");
5050
RfcComponents_HttpServer_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen);
5151
XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen);
5252
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("HTTP客户端:%s,处理登录错误,设置用户信息失败,错误码:%lX"), lpszClientAddr, ModuleHelp_GetLastError());
5353
return FALSE;
5454
}
55-
ModuleProtocol_Packet_P2PCommon(tszRVBuffer, &nRVLen);
55+
ModuleProtocol_Packet_Common(tszRVBuffer, &nRVLen);
5656
RfcComponents_HttpServer_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen);
5757
XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen);
5858
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,处理用户登录请求成功,用户名:%s"), lpszClientAddr, st_ClientPeer.st_PeerAddr.tszUserName);
@@ -64,7 +64,7 @@ BOOL XEngine_HTTPTask_P2PClient(LPCTSTR lpszClientAddr, LPCTSTR lpszMsgBuffer, i
6464

6565
if (!ModuleProtocol_Parse_P2PClient(lpszMsgBuffer, nMsgLen, &st_P2PProtocol))
6666
{
67-
ModuleProtocol_Packet_P2PCommon(tszRVBuffer, &nRVLen, 400, "协议错误");
67+
ModuleProtocol_Packet_Common(tszRVBuffer, &nRVLen, 400, "协议错误");
6868
RfcComponents_HttpServer_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen);
6969
XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen);
7070
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("HTTP客户端:%s,列表请求失败,协议解析错误,错误码:%lX"), lpszClientAddr, ModuleProtocol_GetLastError());
@@ -77,7 +77,7 @@ BOOL XEngine_HTTPTask_P2PClient(LPCTSTR lpszClientAddr, LPCTSTR lpszMsgBuffer, i
7777
XENGINE_P2XPPEER_PROTOCOL** ppSt_ListClients;
7878
if (!ModuleHelp_P2PClient_GetLan(&st_P2PProtocol, &ppSt_ListClients, &nListCount))
7979
{
80-
ModuleProtocol_Packet_P2PCommon(tszRVBuffer, &nRVLen, 500, "内部错误");
80+
ModuleProtocol_Packet_Common(tszRVBuffer, &nRVLen, 500, "内部错误");
8181
RfcComponents_HttpServer_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen);
8282
XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen);
8383
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("HTTP客户端:%s,列表请求失败,请求同步局域网列表失败,公有地址:%s,私有地址:%s,错误码:%lX"), lpszClientAddr, st_P2PProtocol.tszPublicAddr, st_P2PProtocol.tszPrivateAddr, ModuleHelp_GetLastError());

XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_Hdr.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,8 +64,9 @@ using namespace std;
6464
#include "XEngine_HTTPTask/HTTPTask_Bank.h"
6565
#include "XEngine_HTTPTask/HTTPTask_Language.h"
6666
#include "XEngine_HTTPTask/HTTPTask_Translation.h"
67-
#include "XEngine_HTTPTask/HTTPTask_P2PClient.h"
67+
#include "XEngine_HTTPTask/HTTPTask_Locker.h"
6868
#include "XEngine_HTTPTask/HTTPTask_OPtions.h"
69+
#include "XEngine_HTTPTask/HTTPTask_P2PClient.h"
6970
#include "XEngine_HTTPTask/HTTPTask_CDKey.h"
7071
/********************************************************************
7172
// Created: 2022/01/20 14:42:06

XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HttpApp.vcxproj

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -161,6 +161,7 @@
161161
<ClCompile Include="XEngine_HTTPTask\HTTPTask_IDCard.cpp" />
162162
<ClCompile Include="XEngine_HTTPTask\HTTPTask_IPInfo.cpp" />
163163
<ClCompile Include="XEngine_HTTPTask\HTTPTask_Language.cpp" />
164+
<ClCompile Include="XEngine_HTTPTask\HTTPTask_Locker.cpp" />
164165
<ClCompile Include="XEngine_HTTPTask\HTTPTask_OPtions.cpp" />
165166
<ClCompile Include="XEngine_HTTPTask\HTTPTask_P2PClient.cpp" />
166167
<ClCompile Include="XEngine_HTTPTask\HTTPTask_Phone.cpp" />
@@ -177,6 +178,7 @@
177178
<ClInclude Include="XEngine_HTTPTask\HTTPTask_IDCard.h" />
178179
<ClInclude Include="XEngine_HTTPTask\HTTPTask_IPInfo.h" />
179180
<ClInclude Include="XEngine_HTTPTask\HTTPTask_Language.h" />
181+
<ClInclude Include="XEngine_HTTPTask\HTTPTask_Locker.h" />
180182
<ClInclude Include="XEngine_HTTPTask\HTTPTask_OPtions.h" />
181183
<ClInclude Include="XEngine_HTTPTask\HTTPTask_P2PClient.h" />
182184
<ClInclude Include="XEngine_HTTPTask\HTTPTask_Phone.h" />

XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HttpApp.vcxproj.filters

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,9 @@
6363
<ClCompile Include="XEngine_HTTPTask\HTTPTask_CDKey.cpp">
6464
<Filter>源文件\XEngine_HTTPTask</Filter>
6565
</ClCompile>
66+
<ClCompile Include="XEngine_HTTPTask\HTTPTask_Locker.cpp">
67+
<Filter>源文件\XEngine_HTTPTask</Filter>
68+
</ClCompile>
6669
</ItemGroup>
6770
<ItemGroup>
6871
<ClInclude Include="XEngine_Configure.h">
@@ -107,5 +110,8 @@
107110
<ClInclude Include="XEngine_HTTPTask\HTTPTask_CDKey.h">
108111
<Filter>头文件\XEngine_HTTPTask</Filter>
109112
</ClInclude>
113+
<ClInclude Include="XEngine_HTTPTask\HTTPTask_Locker.h">
114+
<Filter>头文件\XEngine_HTTPTask</Filter>
115+
</ClInclude>
110116
</ItemGroup>
111117
</Project>

XEngine_Source/XEngine_UserProtocol.h

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,17 @@ typedef enum
7373
ENUM_XENGINE_APISERVICE_TRANSLATION_TYPE_RU2ZH_CN, //俄语 » 中文
7474
ENUM_XENGINE_APISERVICE_TRANSLATION_TYPE_SP2ZH_CN //西语 » 中文
7575
}ENUM_XENGINE_APISERVICE_TRANSLATION_TYPE;
76+
//分布式锁状态
77+
typedef enum
78+
{
79+
ENUM_XENGINE_APISERVICE_LOCKER_TYPE_CREATE = 0, //创建
80+
ENUM_XENGINE_APISERVICE_LOCKER_TYPE_OPEN = 1, //打开
81+
ENUM_XENGINE_APISERVICE_LOCKER_TYPE_CLOSE = 2, //关闭,打开和创建后必须调用
82+
ENUM_XENGINE_APISERVICE_LOCKER_TYPE_READ = 3, //读加锁
83+
ENUM_XENGINE_APISERVICE_LOCKER_TYPE_UNREAD = 4, //读解锁
84+
ENUM_XENGINE_APISERVICE_LOCKER_TYPE_WRITE = 5, //写加锁
85+
ENUM_XENGINE_APISERVICE_LOCKER_TYPE_UNWRITE= 6 //写解锁
86+
}ENUM_XENGINE_APISERVICE_LOCKER_TYPE;
7687
//////////////////////////////////////////////////////////////////////////
7788
// 子协议定义:unOperatorCode
7889
//////////////////////////////////////////////////////////////////////////

0 commit comments

Comments
 (0)