Skip to content

Commit 1ae9aaa

Browse files
committed
improved:All large memory operations use memory pool instead
1 parent eacabd2 commit 1ae9aaa

File tree

9 files changed

+206
-166
lines changed

9 files changed

+206
-166
lines changed

XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_Hdr.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,11 +135,15 @@ extern XHANDLE xhRFCSocket;
135135
extern XHANDLE xhHTTPHeart;
136136
extern XHANDLE xhHTTPPacket;
137137
extern XHANDLE xhHTTPPool;
138+
extern XHANDLE xhMemPool;
138139
//线程
139140
extern unique_ptr<thread> pSTDThread_Deamon;
140141
//配置文件
141142
extern XENGINE_SERVICECONFIG st_ServiceConfig;
142143
extern XENGINE_DEAMONAPPLIST st_DeamonAppConfig;
144+
145+
#include "XEngine_MemoryPool.h"
146+
143147
//连接库
144148
#ifdef _MSC_BUILD
145149
#pragma comment(lib,"XEngine_BaseLib/XEngine_BaseLib.lib")

XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HttpApp.cpp

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ XHANDLE xhRFCSocket = NULL;
1919
XHANDLE xhHTTPHeart = NULL;
2020
XHANDLE xhHTTPPacket = NULL;
2121
XHANDLE xhHTTPPool = NULL;
22+
XHANDLE xhMemPool = NULL;
2223
//线程
2324
unique_ptr<thread> pSTDThread_Deamon = NULL;
2425
//配置文件
@@ -37,6 +38,7 @@ void ServiceApp_Stop(int signo)
3738
SocketOpt_HeartBeat_DestoryEx(xhHTTPHeart);
3839
HttpProtocol_Server_DestroyEx(xhHTTPPacket);
3940
ManagePool_Thread_NQDestroy(xhHTTPPool);
41+
ManagePool_Memory_Destory(xhMemPool);
4042
//销毁数据库
4143
ModuleDatabase_IDCard_Destory();
4244
ModuleDatabase_Bank_Destory();
@@ -211,6 +213,14 @@ int main(int argc, char** argv)
211213
#endif
212214
}
213215

216+
xhMemPool = ManagePool_Memory_Create();
217+
if (NULL == xhMemPool)
218+
{
219+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("启动服务中,初始化内存池失败,错误:%lX"), ManagePool_GetLastError());
220+
goto XENGINE_SERVICEAPP_EXIT;
221+
}
222+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("启动服务中,初始化内存池成功"));
223+
214224
if (st_ServiceConfig.st_XImageText.bEnable)
215225
{
216226
if (!ModuleHelp_ImageGet_TextInit(st_ServiceConfig.st_XImageText.tszImagePath, st_ServiceConfig.st_XImageText.tszImageLanguage))
@@ -545,6 +555,7 @@ int main(int argc, char** argv)
545555
SocketOpt_HeartBeat_DestoryEx(xhHTTPHeart);
546556
HttpProtocol_Server_DestroyEx(xhHTTPPacket);
547557
ManagePool_Thread_NQDestroy(xhHTTPPool);
558+
ManagePool_Memory_Destory(xhMemPool);
548559
//销毁数据库
549560
ModuleDatabase_IDCard_Destory();
550561
ModuleDatabase_Bank_Destory();

XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HttpApp.vcxproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -257,6 +257,7 @@
257257
<ClInclude Include="XEngine_Configure.h" />
258258
<ClInclude Include="XEngine_Hdr.h" />
259259
<ClInclude Include="XEngine_HTTPTask.h" />
260+
<ClInclude Include="XEngine_MemoryPool.h" />
260261
<ClInclude Include="XEngine_Network.h" />
261262
<ClInclude Include="XEngine_PluginTask.h" />
262263
<ClInclude Include="XEngine_TaskGet\TaskGet_APIModule.h" />

XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HttpApp.vcxproj.filters

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -203,5 +203,8 @@
203203
<ClInclude Include="XEngine_TaskGet\TaskGet_APIModule.h">
204204
<Filter>头文件\XEngine_TaskGet</Filter>
205205
</ClInclude>
206+
<ClInclude Include="XEngine_MemoryPool.h">
207+
<Filter>头文件</Filter>
208+
</ClInclude>
206209
</ItemGroup>
207210
</Project>
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
#pragma once
2+
/********************************************************************
3+
// Created: 2025/06/24 16:49:26
4+
// File Name: D:\XEngine_APIService\XEngine_Source\XEngine_ServiceApp\XEngine_HttpApp\XEngine_MemoryPool.h
5+
// File Path: D:\XEngine_APIService\XEngine_Source\XEngine_ServiceApp\XEngine_HttpApp
6+
// File Base: XEngine_MemoryPool
7+
// File Ext: h
8+
// Project: XEngine
9+
// Author: qyt
10+
// Purpose: 内存池封装
11+
// History:
12+
*********************************************************************/
13+
class CXEngine_MemoryPoolEx
14+
{
15+
public:
16+
CXEngine_MemoryPoolEx(size_t nSize)
17+
{
18+
lPtr = ManagePool_Memory_Alloc(xhMemPool, nSize);
19+
if (NULL == lPtr)
20+
{
21+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ALERT, _X("内存池分配失败,系统面临崩溃!"));
22+
return;
23+
}
24+
}
25+
~CXEngine_MemoryPoolEx()
26+
{
27+
if (NULL != lPtr)
28+
{
29+
ManagePool_Memory_Free(xhMemPool, lPtr);
30+
}
31+
}
32+
public:
33+
// 支持类型转换
34+
template<typename T>
35+
T* as() {
36+
return static_cast<T*>(lPtr);
37+
}
38+
XCHAR* get()
39+
{
40+
return static_cast<XCHAR*>(lPtr);
41+
}
42+
LPCXSTR tostr()
43+
{
44+
return static_cast<LPCXSTR>(lPtr);
45+
}
46+
private:
47+
XPVOID lPtr = NULL;
48+
};

XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_BackService.cpp

Lines changed: 73 additions & 79 deletions
Large diffs are not rendered by default.

XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_Deamon.cpp

Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -91,12 +91,10 @@ void XCALLBACK HTTPTask_TaskPost_Thread()
9191
bool HTTPTask_TaskPost_Deamon(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen)
9292
{
9393
int nSDLen = 0;
94-
XCHAR* ptszSDBuffer = (XCHAR*)malloc(XENGINE_MEMORY_SIZE_MAX);
94+
CXEngine_MemoryPoolEx m_MemorySend(XENGINE_MEMORY_SIZE_MAX);
9595
RFCCOMPONENTS_HTTP_HDRPARAM st_HDRParam; //发送给客户端的参数
9696
XENGINE_DEAMONAPPINFO st_DeamonApp;
9797

98-
memset(ptszSDBuffer, '\0', XENGINE_MEMORY_SIZE_MAX);
99-
10098
memset(&st_HDRParam, '\0', sizeof(RFCCOMPONENTS_HTTP_HDRPARAM));
10199
memset(&st_DeamonApp, '\0', sizeof(XENGINE_DEAMONAPPINFO));
102100

@@ -115,16 +113,16 @@ bool HTTPTask_TaskPost_Deamon(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int
115113
if (0 != _tcsxnicmp(st_ServiceConfig.st_XVerifcation.tszUserName, tszUserName, _tcsxlen(st_ServiceConfig.st_XVerifcation.tszUserName)))
116114
{
117115
st_HDRParam.nHttpCode = 400;
118-
HttpProtocol_Server_SendMsgEx(xhHTTPPacket, ptszSDBuffer, &nSDLen, &st_HDRParam);
119-
XEngine_Network_Send(lpszClientAddr, ptszSDBuffer, nSDLen);
116+
HttpProtocol_Server_SendMsgEx(xhHTTPPacket, m_MemorySend.get(), &nSDLen, &st_HDRParam);
117+
XEngine_Network_Send(lpszClientAddr, m_MemorySend.get(), nSDLen);
120118
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,请求守护协议失败,用户验证失败,用户名错误,提供的用户名:%s"), lpszClientAddr, tszUserName);
121119
return false;
122120
}
123121
if (0 != _tcsxnicmp(st_ServiceConfig.st_XVerifcation.tszUserPass, tszUserPass, _tcsxlen(st_ServiceConfig.st_XVerifcation.tszUserPass)))
124122
{
125123
st_HDRParam.nHttpCode = 400;
126-
HttpProtocol_Server_SendMsgEx(xhHTTPPacket, ptszSDBuffer, &nSDLen, &st_HDRParam);
127-
XEngine_Network_Send(lpszClientAddr, ptszSDBuffer, nSDLen);
124+
HttpProtocol_Server_SendMsgEx(xhHTTPPacket, m_MemorySend.get(), &nSDLen, &st_HDRParam);
125+
XEngine_Network_Send(lpszClientAddr, m_MemorySend.get(), nSDLen);
128126
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,请求守护协议失败,解析协议失败,错误码:%lX"), lpszClientAddr, tszUserPass);
129127
return false;
130128
}
@@ -133,8 +131,8 @@ bool HTTPTask_TaskPost_Deamon(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int
133131
if (!ModuleProtocol_Parse_Deamon(lpszMsgBuffer, nMsgLen, st_DeamonApp.tszAPPName, st_DeamonApp.tszAPPPath, &st_DeamonApp.nReTime, &st_DeamonApp.nReNumber, &st_DeamonApp.bEnable))
134132
{
135133
st_HDRParam.nHttpCode = 400;
136-
HttpProtocol_Server_SendMsgEx(xhHTTPPacket, ptszSDBuffer, &nSDLen, &st_HDRParam);
137-
XEngine_Network_Send(lpszClientAddr, ptszSDBuffer, nSDLen);
134+
HttpProtocol_Server_SendMsgEx(xhHTTPPacket, m_MemorySend.get(), &nSDLen, &st_HDRParam);
135+
XEngine_Network_Send(lpszClientAddr, m_MemorySend.get(), nSDLen);
138136
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,请求解析守护协议失败,解析协议失败,错误码:%lX"), lpszClientAddr, ModuleProtocol_GetLastError());
139137
return false;
140138
}
@@ -155,11 +153,8 @@ bool HTTPTask_TaskPost_Deamon(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int
155153
}
156154
}
157155
}
158-
HttpProtocol_Server_SendMsgEx(xhHTTPPacket, ptszSDBuffer, &nSDLen, &st_HDRParam);
159-
XEngine_Network_Send(lpszClientAddr, ptszSDBuffer, nSDLen);
156+
HttpProtocol_Server_SendMsgEx(xhHTTPPacket, m_MemorySend.get(), &nSDLen, &st_HDRParam);
157+
XEngine_Network_Send(lpszClientAddr, m_MemorySend.get(), nSDLen);
160158
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,请求解析守护协议成功,协议类型:%d,进程名称:%s"), lpszClientAddr, st_DeamonApp.bEnable, st_DeamonApp.tszAPPName);
161-
162-
free(ptszSDBuffer);
163-
ptszSDBuffer = NULL;
164159
return true;
165160
}

XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_Image.cpp

Lines changed: 41 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -19,15 +19,10 @@ bool HTTPTask_TaskPost_Image(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int
1919
#else
2020
int nSDLen = 0;
2121
int nRVLen = 0;
22-
XCHAR tszHTTPKey[64];
23-
XCHAR tszHTTPVlu[64];
24-
XCHAR* ptszSDBuffer = (XCHAR*)malloc(XENGINE_MEMORY_SIZE_MAX);
25-
XCHAR* ptszRVBuffer = (XCHAR*)malloc(XENGINE_MEMORY_SIZE_MAX);
26-
27-
memset(tszHTTPKey, '\0', sizeof(tszHTTPKey));
28-
memset(tszHTTPVlu, '\0', sizeof(tszHTTPVlu));
29-
memset(ptszSDBuffer, '\0', XENGINE_MEMORY_SIZE_MAX);
30-
memset(ptszRVBuffer, '\0', XENGINE_MEMORY_SIZE_MAX);
22+
XCHAR tszHTTPKey[64] = {};
23+
XCHAR tszHTTPVlu[64] = {};
24+
CXEngine_MemoryPoolEx m_MemorySend(XENGINE_MEMORY_SIZE_MAX);
25+
CXEngine_MemoryPoolEx m_MemoryRecv(XENGINE_MEMORY_SIZE_MAX);
3126

3227
BaseLib_String_GetKeyValue((*ppptszList)[1], "=", tszHTTPKey, tszHTTPVlu);
3328
int nOPCode = _ttxoi(tszHTTPVlu);
@@ -49,17 +44,17 @@ bool HTTPTask_TaskPost_Image(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int
4944
int nListCount = 0;
5045
if (ModuleHelp_ImageGet_TextGet(lpszMsgBuffer, nMsgLen, &pptszListStr, &nListCount))
5146
{
52-
ModuleProtocol_Packet_ImageText(ptszRVBuffer, &nRVLen, &pptszListStr, nListCount);
53-
HttpProtocol_Server_SendMsgEx(xhHTTPPacket, ptszSDBuffer, &nSDLen, &st_HDRParam, ptszRVBuffer, nRVLen);
54-
XEngine_Network_Send(lpszClientAddr, ptszSDBuffer, nSDLen);
47+
ModuleProtocol_Packet_ImageText(m_MemoryRecv.get(), &nRVLen, &pptszListStr, nListCount);
48+
HttpProtocol_Server_SendMsgEx(xhHTTPPacket, m_MemorySend.get(), &nSDLen, &st_HDRParam, m_MemoryRecv.get(), nRVLen);
49+
XEngine_Network_Send(lpszClientAddr, m_MemorySend.get(), nSDLen);
5550
BaseLib_Memory_Free((XPPPMEM)&pptszListStr, nListCount);
5651
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,请求获取识别图片文字成功,获取个数:%d"), lpszClientAddr, nListCount);
5752
}
5853
else
5954
{
6055
st_HDRParam.nHttpCode = 501;
61-
HttpProtocol_Server_SendMsgEx(xhHTTPPacket, ptszSDBuffer, &nSDLen, &st_HDRParam);
62-
XEngine_Network_Send(lpszClientAddr, ptszSDBuffer, nSDLen);
56+
HttpProtocol_Server_SendMsgEx(xhHTTPPacket, m_MemorySend.get(), &nSDLen, &st_HDRParam);
57+
XEngine_Network_Send(lpszClientAddr, m_MemorySend.get(), nSDLen);
6358
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,请求获取识别图片文字失败,错误:%lX"), lpszClientAddr, ModuleHelp_GetLastError());
6459
}
6560
}
@@ -70,16 +65,16 @@ bool HTTPTask_TaskPost_Image(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int
7065

7166
if (ModuleHelp_ImageGet_Attr(lpszMsgBuffer, nMsgLen, &st_BaseInfo, &st_ExtAttr))
7267
{
73-
ModuleProtocol_Packet_ImageAttr(ptszRVBuffer, &nRVLen, &st_BaseInfo, &st_ExtAttr);
74-
HttpProtocol_Server_SendMsgEx(xhHTTPPacket, ptszSDBuffer, &nSDLen, &st_HDRParam, ptszRVBuffer, nRVLen);
75-
XEngine_Network_Send(lpszClientAddr, ptszSDBuffer, nSDLen);
68+
ModuleProtocol_Packet_ImageAttr(m_MemoryRecv.get(), &nRVLen, &st_BaseInfo, &st_ExtAttr);
69+
HttpProtocol_Server_SendMsgEx(xhHTTPPacket, m_MemorySend.get(), &nSDLen, &st_HDRParam, m_MemoryRecv.get(), nRVLen);
70+
XEngine_Network_Send(lpszClientAddr, m_MemorySend.get(), nSDLen);
7671
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,请求获取图像信息成功,宽:%d,高:%d,通道:%d"), lpszClientAddr, st_BaseInfo.nWidth, st_BaseInfo.nHeigth, st_BaseInfo.nChannel);
7772
}
7873
else
7974
{
8075
st_HDRParam.nHttpCode = 501;
81-
HttpProtocol_Server_SendMsgEx(xhHTTPPacket, ptszSDBuffer, &nSDLen, &st_HDRParam);
82-
XEngine_Network_Send(lpszClientAddr, ptszSDBuffer, nSDLen);
76+
HttpProtocol_Server_SendMsgEx(xhHTTPPacket, m_MemorySend.get(), &nSDLen, &st_HDRParam);
77+
XEngine_Network_Send(lpszClientAddr, m_MemorySend.get(), nSDLen);
8378
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,请求获取图片属性失败,错误:%lX"), lpszClientAddr, ModuleHelp_GetLastError());
8479
}
8580
}
@@ -88,8 +83,8 @@ bool HTTPTask_TaskPost_Image(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int
8883
if (nListCount < 4)
8984
{
9085
st_HDRParam.nHttpCode = 400;
91-
HttpProtocol_Server_SendMsgEx(xhHTTPPacket, ptszSDBuffer, &nSDLen, &st_HDRParam);
92-
XEngine_Network_Send(lpszClientAddr, ptszSDBuffer, nSDLen);
86+
HttpProtocol_Server_SendMsgEx(xhHTTPPacket, m_MemorySend.get(), &nSDLen, &st_HDRParam);
87+
XEngine_Network_Send(lpszClientAddr, m_MemorySend.get(), nSDLen);
9388
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,请求设置图像数据失败,因为附加参数不正确,参数个数:%d"), lpszClientAddr, nListCount);
9489
return false;
9590
}
@@ -108,90 +103,86 @@ bool HTTPTask_TaskPost_Image(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int
108103
BaseLib_String_GetKeyValue((*ppptszList)[4], "=", tszHTTPKey, tszHTTPVlu);
109104
int nHeight = _ttxoi(tszHTTPVlu);
110105

111-
if (ModuleHelp_ImageSet_Resolution(lpszMsgBuffer, nMsgLen, tszFileExt, ptszRVBuffer, &nRVLen, nWidth, nHeight))
106+
if (ModuleHelp_ImageSet_Resolution(lpszMsgBuffer, nMsgLen, tszFileExt, m_MemoryRecv.get(), &nRVLen, nWidth, nHeight))
112107
{
113-
HttpProtocol_Server_SendMsgEx(xhHTTPPacket, ptszSDBuffer, &nSDLen, &st_HDRParam, ptszRVBuffer, nRVLen);
114-
XEngine_Network_Send(lpszClientAddr, ptszSDBuffer, nSDLen);
108+
HttpProtocol_Server_SendMsgEx(xhHTTPPacket, m_MemorySend.get(), &nSDLen, &st_HDRParam, m_MemoryRecv.get(), nRVLen);
109+
XEngine_Network_Send(lpszClientAddr, m_MemorySend.get(), nSDLen);
115110
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,请求设置图像分辨率成功,宽:%d,高:%d"), lpszClientAddr, nWidth, nHeight);
116111
}
117112
else
118113
{
119114
st_HDRParam.nHttpCode = 501;
120-
HttpProtocol_Server_SendMsgEx(xhHTTPPacket, ptszSDBuffer, &nSDLen, &st_HDRParam);
121-
XEngine_Network_Send(lpszClientAddr, ptszSDBuffer, nSDLen);
115+
HttpProtocol_Server_SendMsgEx(xhHTTPPacket, m_MemorySend.get(), &nSDLen, &st_HDRParam);
116+
XEngine_Network_Send(lpszClientAddr, m_MemorySend.get(), nSDLen);
122117
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,请求设置图像分辨率失败,错误:%lX"), lpszClientAddr, ModuleHelp_GetLastError());
123118
}
124119

125120
}
126121
else if (3 == nOPCode)
127122
{
128-
if (ModuleHelp_ImageSet_ColorCvt(lpszMsgBuffer, nMsgLen, tszFileExt, ptszRVBuffer, &nRVLen, (ENUM_XENGINE_IMAGE_COLOR_INFO)nWidth))
123+
if (ModuleHelp_ImageSet_ColorCvt(lpszMsgBuffer, nMsgLen, tszFileExt, m_MemoryRecv.get(), &nRVLen, (ENUM_XENGINE_IMAGE_COLOR_INFO)nWidth))
129124
{
130-
HttpProtocol_Server_SendMsgEx(xhHTTPPacket, ptszSDBuffer, &nSDLen, &st_HDRParam, ptszRVBuffer, nRVLen);
131-
XEngine_Network_Send(lpszClientAddr, ptszSDBuffer, nSDLen);
125+
HttpProtocol_Server_SendMsgEx(xhHTTPPacket, m_MemorySend.get(), &nSDLen, &st_HDRParam, m_MemoryRecv.get(), nRVLen);
126+
XEngine_Network_Send(lpszClientAddr, m_MemorySend.get(), nSDLen);
132127
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,请求设置图像颜色空间转换成功,转换的值:%d"), lpszClientAddr, nWidth);
133128
}
134129
else
135130
{
136131
st_HDRParam.nHttpCode = 501;
137-
HttpProtocol_Server_SendMsgEx(xhHTTPPacket, ptszSDBuffer, &nSDLen, &st_HDRParam);
138-
XEngine_Network_Send(lpszClientAddr, ptszSDBuffer, nSDLen);
132+
HttpProtocol_Server_SendMsgEx(xhHTTPPacket, m_MemorySend.get(), &nSDLen, &st_HDRParam);
133+
XEngine_Network_Send(lpszClientAddr, m_MemorySend.get(), nSDLen);
139134
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,请求设置图像颜色空间转换失败,错误:%lX"), lpszClientAddr, ModuleHelp_GetLastError());
140135
}
141136
}
142137
else if (4 == nOPCode)
143138
{
144-
if (ModuleHelp_ImageSet_Flip(lpszMsgBuffer, nMsgLen, tszFileExt, ptszRVBuffer, &nRVLen, nWidth))
139+
if (ModuleHelp_ImageSet_Flip(lpszMsgBuffer, nMsgLen, tszFileExt, m_MemoryRecv.get(), &nRVLen, nWidth))
145140
{
146-
HttpProtocol_Server_SendMsgEx(xhHTTPPacket, ptszSDBuffer, &nSDLen, &st_HDRParam, ptszRVBuffer, nRVLen);
147-
XEngine_Network_Send(lpszClientAddr, ptszSDBuffer, nSDLen);
141+
HttpProtocol_Server_SendMsgEx(xhHTTPPacket, m_MemorySend.get(), &nSDLen, &st_HDRParam, m_MemoryRecv.get(), nRVLen);
142+
XEngine_Network_Send(lpszClientAddr, m_MemorySend.get(), nSDLen);
148143
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,请求设置图像翻转成功,翻转的值:%d"), lpszClientAddr, nWidth);
149144
}
150145
else
151146
{
152147
st_HDRParam.nHttpCode = 501;
153-
HttpProtocol_Server_SendMsgEx(xhHTTPPacket, ptszSDBuffer, &nSDLen, &st_HDRParam);
154-
XEngine_Network_Send(lpszClientAddr, ptszSDBuffer, nSDLen);
148+
HttpProtocol_Server_SendMsgEx(xhHTTPPacket, m_MemorySend.get(), &nSDLen, &st_HDRParam);
149+
XEngine_Network_Send(lpszClientAddr, m_MemorySend.get(), nSDLen);
155150
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,请求设置图像翻转失败,错误:%lX"), lpszClientAddr, ModuleHelp_GetLastError());
156151
}
157152
}
158153
else if (5 == nOPCode)
159154
{
160-
if (ModuleHelp_ImageSet_Ligth(lpszMsgBuffer, nMsgLen, tszFileExt, ptszRVBuffer, &nRVLen, nWidth))
155+
if (ModuleHelp_ImageSet_Ligth(lpszMsgBuffer, nMsgLen, tszFileExt, m_MemoryRecv.get(), &nRVLen, nWidth))
161156
{
162-
HttpProtocol_Server_SendMsgEx(xhHTTPPacket, ptszSDBuffer, &nSDLen, &st_HDRParam, ptszRVBuffer, nRVLen);
163-
XEngine_Network_Send(lpszClientAddr, ptszSDBuffer, nSDLen);
157+
HttpProtocol_Server_SendMsgEx(xhHTTPPacket, m_MemorySend.get(), &nSDLen, &st_HDRParam, m_MemoryRecv.get(), nRVLen);
158+
XEngine_Network_Send(lpszClientAddr, m_MemorySend.get(), nSDLen);
164159
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,请求设置图像亮度,亮度的值:%d"), lpszClientAddr, nWidth);
165160
}
166161
else
167162
{
168163
st_HDRParam.nHttpCode = 501;
169-
HttpProtocol_Server_SendMsgEx(xhHTTPPacket, ptszSDBuffer, &nSDLen, &st_HDRParam);
170-
XEngine_Network_Send(lpszClientAddr, ptszSDBuffer, nSDLen);
164+
HttpProtocol_Server_SendMsgEx(xhHTTPPacket, m_MemorySend.get(), &nSDLen, &st_HDRParam);
165+
XEngine_Network_Send(lpszClientAddr, m_MemorySend.get(), nSDLen);
171166
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,请求设置图像亮度失败,错误:%lX"), lpszClientAddr, ModuleHelp_GetLastError());
172167
}
173168
}
174169
else if (6 == nOPCode)
175170
{
176-
if (ModuleHelp_ImageSet_Level(lpszMsgBuffer, nMsgLen, tszFileExt, ptszRVBuffer, &nRVLen, nWidth))
171+
if (ModuleHelp_ImageSet_Level(lpszMsgBuffer, nMsgLen, tszFileExt, m_MemoryRecv.get(), &nRVLen, nWidth))
177172
{
178-
HttpProtocol_Server_SendMsgEx(xhHTTPPacket, ptszSDBuffer, &nSDLen, &st_HDRParam, ptszRVBuffer, nRVLen);
179-
XEngine_Network_Send(lpszClientAddr, ptszSDBuffer, nSDLen);
173+
HttpProtocol_Server_SendMsgEx(xhHTTPPacket, m_MemorySend.get(), &nSDLen, &st_HDRParam, m_MemoryRecv.get(), nRVLen);
174+
XEngine_Network_Send(lpszClientAddr, m_MemorySend.get(), nSDLen);
180175
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,请求设置图像质量压缩值:%d"), lpszClientAddr, nWidth);
181176
}
182177
else
183178
{
184179
st_HDRParam.nHttpCode = 501;
185-
HttpProtocol_Server_SendMsgEx(xhHTTPPacket, ptszSDBuffer, &nSDLen, &st_HDRParam);
186-
XEngine_Network_Send(lpszClientAddr, ptszSDBuffer, nSDLen);
180+
HttpProtocol_Server_SendMsgEx(xhHTTPPacket, m_MemorySend.get(), &nSDLen, &st_HDRParam);
181+
XEngine_Network_Send(lpszClientAddr, m_MemorySend.get(), nSDLen);
187182
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,请求设置图像质量压缩失败,错误:%lX"), lpszClientAddr, ModuleHelp_GetLastError());
188183
}
189184
}
190185
}
191-
free(ptszRVBuffer);
192-
free(ptszSDBuffer);
193-
ptszRVBuffer = NULL;
194-
ptszSDBuffer = NULL;
195186
#endif
196187
return true;
197188
}

0 commit comments

Comments
 (0)