Skip to content

Commit 6b49d2a

Browse files
committed
added:completed notify for back service
1 parent 3c0e33b commit 6b49d2a

File tree

6 files changed

+101
-0
lines changed

6 files changed

+101
-0
lines changed

XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Define.h

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -848,6 +848,30 @@ extern "C" bool ModuleProtocol_Packet_IPAddr(XCHAR* ptszMSGBuffer, int* pInt_MSG
848848
备注:
849849
*********************************************************************/
850850
extern "C" bool ModuleProtocol_Packet_MacInfo(XCHAR* ptszMSGBuffer, int* pInt_MSGLen, XENGINE_MACADDRINFO* pSt_MacInfo);
851+
/********************************************************************
852+
函数名称:ModuleProtocol_Packet_BackNotify
853+
函数功能:后台服务通知协议
854+
参数.一:ptszMsgBuffer
855+
In/Out:Out
856+
类型:字符指针
857+
可空:N
858+
意思:输出打好包的缓冲区
859+
参数.二:pInt_MsgLen
860+
In/Out:Out
861+
类型:整数型指针
862+
可空:N
863+
意思:输出缓冲区大小
864+
参数.三:nCode
865+
In/Out:In
866+
类型:整数型
867+
可空:N
868+
意思:输入返回的值
869+
返回值
870+
类型:逻辑型
871+
意思:是否成功
872+
备注:
873+
*********************************************************************/
874+
extern "C" bool ModuleProtocol_Packet_BackNotify(XCHAR* ptszMSGBuffer, int* pInt_MSGLen, int nCode, int nOPerator, LPCXSTR lpszSourceStr, LPCXSTR lpszDestStr, LPCXSTR lpszAPIStr);
851875
/************************************************************************/
852876
/* 导出的协议解析函数 */
853877
/************************************************************************/

XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Packet/ModuleProtocol_Packet.cpp

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1574,6 +1574,57 @@ bool CModuleProtocol_Packet::ModuleProtocol_Packet_MacInfo(XCHAR* ptszMSGBuffer,
15741574
return true;
15751575
}
15761576
/********************************************************************
1577+
函数名称:ModuleProtocol_Packet_BackNotify
1578+
函数功能:后台服务通知协议
1579+
参数.一:ptszMsgBuffer
1580+
In/Out:Out
1581+
类型:字符指针
1582+
可空:N
1583+
意思:输出打好包的缓冲区
1584+
参数.二:pInt_MsgLen
1585+
In/Out:Out
1586+
类型:整数型指针
1587+
可空:N
1588+
意思:输出缓冲区大小
1589+
参数.三:nCode
1590+
In/Out:In
1591+
类型:整数型
1592+
可空:N
1593+
意思:输入返回的值
1594+
返回值
1595+
类型:逻辑型
1596+
意思:是否成功
1597+
备注:
1598+
*********************************************************************/
1599+
bool CModuleProtocol_Packet::ModuleProtocol_Packet_BackNotify(XCHAR* ptszMSGBuffer, int* pInt_MSGLen, int nCode, int nOPerator, LPCXSTR lpszSourceStr, LPCXSTR lpszDestStr, LPCXSTR lpszAPIStr)
1600+
{
1601+
ModuleProtocol_IsErrorOccur = false;
1602+
1603+
if ((NULL == ptszMSGBuffer) || (NULL == pInt_MSGLen))
1604+
{
1605+
ModuleProtocol_IsErrorOccur = true;
1606+
ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PACKET_PARAMENT;
1607+
return false;
1608+
}
1609+
Json::Value st_JsonRoot;
1610+
Json::Value st_JsonObject;
1611+
Json::StreamWriterBuilder st_JsonBuilder;
1612+
1613+
st_JsonObject["nOPerator"] = nOPerator;
1614+
st_JsonObject["lpszSourceStr"] = lpszSourceStr;
1615+
st_JsonObject["lpszDestStr"] = lpszDestStr;
1616+
st_JsonObject["lpszAPIStr"] = lpszAPIStr;
1617+
1618+
st_JsonRoot["code"] = nCode;
1619+
st_JsonRoot["data"] = st_JsonObject;
1620+
st_JsonBuilder["emitUTF8"] = true;
1621+
1622+
*pInt_MSGLen = Json::writeString(st_JsonBuilder, st_JsonRoot).length();
1623+
memcpy(ptszMSGBuffer, Json::writeString(st_JsonBuilder, st_JsonRoot).c_str(), *pInt_MSGLen);
1624+
1625+
return true;
1626+
}
1627+
/********************************************************************
15771628
函数名称:ModuleProtocol_Packet_P2PLan
15781629
函数功能:响应同步局域网地址列表
15791630
参数.一:ptszMsgBuffer

XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Packet/ModuleProtocol_Packet.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ class CModuleProtocol_Packet
4747
bool ModuleProtocol_Packet_PhoneInfo(XCHAR* ptszMSGBuffer, int* pInt_MSGLen, XENGINE_PHONEINFO* pSt_PhoneInfo);
4848
bool ModuleProtocol_Packet_IPAddr(XCHAR* ptszMSGBuffer, int* pInt_MSGLen, XENGINE_IPADDRINFO* pSt_IPAddrInfo);
4949
bool ModuleProtocol_Packet_MacInfo(XCHAR* ptszMSGBuffer, int* pInt_MSGLen, XENGINE_MACADDRINFO* pSt_MacInfo);
50+
bool ModuleProtocol_Packet_BackNotify(XCHAR* ptszMSGBuffer, int* pInt_MSGLen, int nCode,int nOPerator, LPCXSTR lpszSourceStr, LPCXSTR lpszDestStr, LPCXSTR lpszAPIStr);
5051
public:
5152
bool ModuleProtocol_Packet_P2PLan(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_P2XPPEER_PROTOCOL*** pppSt_ListClients, int nListCount);
5253
bool ModuleProtocol_Packet_P2PWLan(XCHAR* 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
@@ -28,6 +28,7 @@ EXPORTS
2828
ModuleProtocol_Packet_PhoneInfo
2929
ModuleProtocol_Packet_IPAddr
3030
ModuleProtocol_Packet_MacInfo
31+
ModuleProtocol_Packet_BackNotify
3132
ModuleProtocol_Packet_P2PLan
3233
ModuleProtocol_Packet_P2PWLan
3334
ModuleProtocol_Packet_P2PWList

XEngine_Source/XEngine_ModuleProtocol/pch.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,10 @@ extern "C" bool ModuleProtocol_Packet_MacInfo(XCHAR* ptszMSGBuffer, int* pInt_MS
131131
{
132132
return m_ProtocolPacket.ModuleProtocol_Packet_MacInfo(ptszMSGBuffer, pInt_MSGLen, pSt_MacInfo);
133133
}
134+
extern "C" bool ModuleProtocol_Packet_BackNotify(XCHAR* ptszMSGBuffer, int* pInt_MSGLen, int nCode, int nOPerator, LPCXSTR lpszSourceStr, LPCXSTR lpszDestStr, LPCXSTR lpszAPIStr)
135+
{
136+
return m_ProtocolPacket.ModuleProtocol_Packet_BackNotify(ptszMSGBuffer, pInt_MSGLen, nCode, nOPerator, lpszSourceStr, lpszDestStr, lpszAPIStr);
137+
}
134138
extern "C" bool ModuleProtocol_Packet_P2PLan(XCHAR * ptszMsgBuffer, int* pInt_MsgLen, XENGINE_P2XPPEER_PROTOCOL * **pppSt_ListClients, int nListCount)
135139
{
136140
return m_ProtocolPacket.ModuleProtocol_Packet_P2PLan(ptszMsgBuffer, pInt_MsgLen, pppSt_ListClients, nListCount);

XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_BackService.cpp

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,21 +97,31 @@ bool HTTPTask_TaskPost_BackService(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer
9797
}
9898
HttpProtocol_Server_SendMsgEx(xhHTTPPacket, m_MemorySend.get(), &nSDLen, &st_HDRParam);
9999
XEngine_Network_Send(lpszClientAddr, m_MemorySend.get(), nSDLen);
100+
101+
XLONG dwRet = 0;
100102
while (true)
101103
{
102104
XCLIENT_APIFILE st_TaskInfo;
103105
memset(&st_TaskInfo, '\0', sizeof(XCLIENT_APIFILE));
104106

105107
if (!APIClient_File_Query(xhTask, &st_TaskInfo))
106108
{
109+
dwRet = APIClient_GetLastError();
107110
break;
108111
}
109112
if ((ENUM_XCLIENT_APIHELP_FILE_STATUS_INIT != st_TaskInfo.en_DownStatus) && (ENUM_XCLIENT_APIHELP_FILE_STATUS_DOWNLOADDING != st_TaskInfo.en_DownStatus))
110113
{
114+
dwRet = APIClient_GetLastError();
111115
break;
112116
}
113117
}
114118
APIClient_File_Delete(xhTask);
119+
//完成通知
120+
if (_tcsxlen(tszAPIBuffer) > 0)
121+
{
122+
ModuleProtocol_Packet_BackNotify(m_MemorySend.get(), &nSDLen, (int)dwRet, XENGINE_COMMUNICATION_PROTOCOL_OPERATOR_CODE_BS_DOWNFILE, tszSrcBuffer, tszDstBuffer, tszAPIBuffer);
123+
APIClient_Http_Request(_X("POST"), tszAPIBuffer, m_MemorySend.get());
124+
}
115125
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s:下载任务处理成功,下载地址:%s,保存地址:%s"),lpszClientAddr, tszSrcBuffer, tszDstBuffer);
116126
}
117127
break;
@@ -162,21 +172,31 @@ bool HTTPTask_TaskPost_BackService(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer
162172
}
163173
HttpProtocol_Server_SendMsgEx(xhHTTPPacket, m_MemorySend.get(), &nSDLen, &st_HDRParam);
164174
XEngine_Network_Send(lpszClientAddr, m_MemorySend.get(), nSDLen);
175+
176+
XLONG dwRet = 0;
165177
while (true)
166178
{
167179
XCLIENT_APIFILE st_TaskInfo;
168180
memset(&st_TaskInfo, '\0', sizeof(XCLIENT_APIFILE));
169181

170182
if (!APIClient_File_Query(xhTask, &st_TaskInfo))
171183
{
184+
dwRet = APIClient_GetLastError();
172185
break;
173186
}
174187
if (ENUM_XCLIENT_APIHELP_FILE_STATUS_DOWNLOADDING != st_TaskInfo.en_DownStatus && (ENUM_XCLIENT_APIHELP_FILE_STATUS_INIT != st_TaskInfo.en_DownStatus))
175188
{
189+
dwRet = APIClient_GetLastError();
176190
break;
177191
}
178192
}
179193
APIClient_File_Delete(xhTask);
194+
//完成通知
195+
if (_tcsxlen(tszAPIBuffer) > 0)
196+
{
197+
ModuleProtocol_Packet_BackNotify(m_MemorySend.get(), &nSDLen, (int)dwRet, XENGINE_COMMUNICATION_PROTOCOL_OPERATOR_CODE_BS_UPFILE, tszSrcBuffer, tszDstBuffer, tszAPIBuffer);
198+
APIClient_Http_Request(_X("POST"), tszAPIBuffer, m_MemorySend.get());
199+
}
180200
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s:上传文件处理成功,上传的文件:%s,上传的地址:%s"), lpszClientAddr, tszSrcBuffer, tszDstBuffer);
181201
}
182202
break;

0 commit comments

Comments
 (0)