Skip to content

Commit bc54b65

Browse files
committed
fixed:linux build
added:manage task insert and delete
1 parent 6af41f7 commit bc54b65

File tree

4 files changed

+104
-6
lines changed

4 files changed

+104
-6
lines changed

XEngine_Source/StorageModule_APIHelp/pch.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
#include <string.h>
2424
#include <list>
2525
#include <string>
26+
#include <memory>
2627
using namespace std;
2728
#include <XEngine_Include/XEngine_CommHdr.h>
2829
#include <XEngine_Include/XEngine_Types.h>

XEngine_Source/XEngine_StorageApp/Makefile

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ LOADBIN = -L /usr/local/lib/XEngine_Release/XEngine_BaseLib -L /usr/local/lib/XE
55
LIB = -lXEngine_BaseLib -lXEngine_Algorithm -lXEngine_Core -lXEngine_ManagePool -lXEngine_NetXApi -lXEngine_OPenSsl -lHelpComponents_XLog -lHelpComponents_Packets -lXEngine_ProcSdk -lXEngine_SystemApi -lRfcComponents_HttpServer -lNetHelp_APIHelp -lXStorage_SQLPacket -lXStorage_Protocol -lXEngine_P2XPPeer -lXEngine_P2XPProtocol -lStorageModule_Config -lStorageModule_Session -lStorageModule_APIHelp
66
LIBEX = -static-libgcc -ldl -lrt -lpthread
77
LOADSO = -Wl,-rpath=./,--disable-new-dtags
8-
LIBINCLUDE = StorageApp_Config.o StorageApp_Download.o StorageApp_Network.o StorageApp_Center.o StorageApp_UPLoader.o StorageApp_P2XPNet.o Storage_APPHelp.o Storage_TaskEvent.o Storage_TaskPass.o Storage_TaskQuery.o XEngine_StorageApp.o
8+
LIBINCLUDE = StorageApp_Config.o StorageApp_Download.o StorageApp_Network.o StorageApp_Center.o StorageApp_UPLoader.o StorageApp_P2XPNet.o Storage_APPHelp.o Storage_TaskEvent.o Storage_TaskPass.o Storage_TaskQuery.o Storage_TaskManage.o Storage_TaskP2p.o XEngine_StorageApp.o
99

1010
ifeq ($(RELEASE),1)
1111
FLAGS = -c -O2
@@ -46,7 +46,11 @@ Storage_TaskPass.o:./Storage_APPTask/Storage_TaskPass.cpp
4646
$(CC) $(DEBUG) $(FLAGS) $(UNICODE) ./Storage_APPTask/Storage_TaskPass.cpp
4747
Storage_TaskQuery.o:./Storage_APPTask/Storage_TaskQuery.cpp
4848
$(CC) $(DEBUG) $(FLAGS) $(UNICODE) ./Storage_APPTask/Storage_TaskQuery.cpp
49-
49+
Storage_TaskManage.o:./Storage_APPTask/Storage_TaskManage.cpp
50+
$(CC) $(DEBUG) $(FLAGS) $(UNICODE) ./Storage_APPTask/Storage_TaskManage.cpp
51+
Storage_TaskP2p.o:./Storage_APPTask/Storage_TaskP2p.cpp
52+
$(CC) $(DEBUG) $(FLAGS) $(UNICODE) ./Storage_APPTask/Storage_TaskP2p.cpp
53+
5054
XEngine_StorageApp.o:./XEngine_StorageApp.cpp
5155
$(CC) $(DEBUG) $(FLAGS) $(UNICODE) ./XEngine_StorageApp.cpp
5256

XEngine_Source/XEngine_StorageApp/StorageApp_Hdr.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
#include <thread>
99
#include <list>
1010
#include <sys/types.h>
11+
#include <sys/stat.h>
1112
#ifdef _WINDOWS
1213
#include <windows.h>
1314
#include <tchar.h>

XEngine_Source/XEngine_StorageApp/Storage_APPTask/Storage_TaskManage.cpp

Lines changed: 96 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,15 +21,107 @@ BOOL XEngine_Task_Manage(LPCTSTR lpszAPIName, LPCTSTR lpszClientAddr, LPCTSTR lp
2121
{
2222
if (0 == ppSt_DBFile[i]->st_ProtocolFile.nFileSize)
2323
{
24-
TCHAR tszFileDir[MAX_PATH];
25-
_stprintf(tszFileDir, _T("%s %s"), ppSt_DBFile[i]->st_ProtocolFile.tszFilePath, ppSt_DBFile[i]->st_ProtocolFile.tszFileName);
26-
XStorageSQL_File_FileInsert(ppSt_DBFile[i]);
24+
int nHashLen = 0;
25+
UCHAR tszHashStr[MAX_PATH];
26+
TCHAR tszFileDir[1024];
27+
struct __stat64 st_FStat;
28+
29+
memset(tszHashStr, '\0', MAX_PATH);
30+
memset(tszFileDir, '\0', sizeof(tszFileDir));
31+
32+
_stprintf(tszFileDir, _T("%s/%s"), ppSt_DBFile[i]->st_ProtocolFile.tszFilePath, ppSt_DBFile[i]->st_ProtocolFile.tszFileName);
33+
34+
int nRet = _stat64(tszFileDir, &st_FStat);
35+
if (0 != nRet)
36+
{
37+
st_HDRParam.bIsClose = TRUE;
38+
st_HDRParam.nHttpCode = 404;
39+
RfcComponents_HttpServer_SendMsgEx(xhUPHttp, tszSDBuffer, &nSDLen, &st_HDRParam);
40+
XEngine_Net_SendMsg(lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPCENTER);
41+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("业务客户端:%s,请求添加文件到数据库失败,文件不存在,文件;%s"), lpszClientAddr, tszFileDir);
42+
return FALSE;
43+
}
44+
//获取大小
45+
ppSt_DBFile[i]->st_ProtocolFile.nFileSize = st_FStat.st_size;
46+
//计算HASH
47+
OPenSsl_Api_Digest(tszFileDir, tszHashStr, &nHashLen, TRUE, st_ServiceCfg.st_XStorage.nHashMode);
48+
BaseLib_OperatorString_StrToHex((char*)tszHashStr, nHashLen, ppSt_DBFile[i]->st_ProtocolFile.tszFileHash);
49+
}
50+
if (0 != st_ServiceCfg.st_XSql.nSQLType)
51+
{
52+
if (1 == st_ServiceCfg.st_XSql.nSQLType)
53+
{
54+
XStorageSQL_File_FileInsert(ppSt_DBFile[i]);
55+
}
56+
else
57+
{
58+
XStorage_SQLite_FileInsert(ppSt_DBFile[i]);
59+
}
60+
}
61+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("业务客户端:%s,请求添加文件到数据库成功,文件名:%s/%s"), lpszClientAddr, ppSt_DBFile[i]->st_ProtocolFile.tszFilePath, ppSt_DBFile[i]->st_ProtocolFile.tszFileName);
62+
}
63+
st_HDRParam.bIsClose = TRUE;
64+
st_HDRParam.nHttpCode = 200;
65+
RfcComponents_HttpServer_SendMsgEx(xhUPHttp, tszSDBuffer, &nSDLen, &st_HDRParam);
66+
XEngine_Net_SendMsg(lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPCENTER);
67+
BaseLib_OperatorMemory_Free((XPPPMEM)&ppSt_DBFile, nListCount);
68+
}
69+
else if (0 == _tcsnicmp(XENGINE_STORAGE_APP_METHOD_DEL, lpszAPIName, _tcslen(XENGINE_STORAGE_APP_METHOD_DEL)))
70+
{
71+
int nListCount = 0;
72+
XSTORAGECORE_DBFILE** ppSt_DBFile;
73+
74+
XStorageProtocol_Core_ReportFileParse(lpszMsgBuffer, nMsgLen, &ppSt_DBFile, &nListCount);
75+
for (int i = 0; i < nListCount; i++)
76+
{
77+
if (_tcslen(ppSt_DBFile[i]->st_ProtocolFile.tszFileHash) > 0)
78+
{
79+
if (0 != st_ServiceCfg.st_XSql.nSQLType)
80+
{
81+
int nQueryCount = 0;
82+
XSTORAGECORE_DBFILE** ppSt_DBQuery;
83+
if (1 == st_ServiceCfg.st_XSql.nSQLType)
84+
{
85+
XStorageSQL_File_FileQuery(&ppSt_DBQuery, &nQueryCount, NULL, NULL, NULL, ppSt_DBFile[i]->st_ProtocolFile.tszFileHash);
86+
//删除数据库与文件
87+
for (int i = 0; i < nQueryCount; i++)
88+
{
89+
TCHAR tszFilePath[1024];
90+
memset(tszFilePath, '\0', sizeof(tszFilePath));
91+
92+
_stprintf(tszFilePath, _T("%s/%s"), ppSt_DBFile[i]->st_ProtocolFile.tszFilePath, ppSt_DBFile[i]->st_ProtocolFile.tszFileName);
93+
XStorageSQL_File_FileDelete(NULL, ppSt_DBFile[i]->st_ProtocolFile.tszFileHash);
94+
}
95+
}
96+
else
97+
{
98+
XStorage_SQLite_FileQuery(&ppSt_DBQuery, &nQueryCount, NULL, NULL, NULL, ppSt_DBFile[i]->st_ProtocolFile.tszFileHash);
99+
//删除数据库与文件
100+
for (int i = 0; i < nQueryCount; i++)
101+
{
102+
TCHAR tszFilePath[1024];
103+
memset(tszFilePath, '\0', sizeof(tszFilePath));
104+
105+
_stprintf(tszFilePath, _T("%s/%s"), ppSt_DBFile[i]->st_ProtocolFile.tszFilePath, ppSt_DBFile[i]->st_ProtocolFile.tszFileName);
106+
XStorage_SQLite_FileDelete(NULL, ppSt_DBFile[i]->st_ProtocolFile.tszFileHash);
107+
}
108+
}
109+
}
110+
else
111+
{
112+
113+
}
114+
}
115+
else
116+
{
27117
}
118+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("业务客户端:%s,请求删除文件成功,文件名:%s/%s"), lpszClientAddr, ppSt_DBFile[i]->st_ProtocolFile.tszFilePath, ppSt_DBFile[i]->st_ProtocolFile.tszFileName);
28119
}
120+
st_HDRParam.bIsClose = TRUE;
29121
st_HDRParam.nHttpCode = 200;
30122
RfcComponents_HttpServer_SendMsgEx(xhUPHttp, tszSDBuffer, &nSDLen, &st_HDRParam);
31123
XEngine_Net_SendMsg(lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPCENTER);
32-
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("业务客户端:%s"), lpszClientAddr);
124+
BaseLib_OperatorMemory_Free((XPPPMEM)&ppSt_DBFile, nListCount);
33125
}
34126
return TRUE;
35127
}

0 commit comments

Comments
 (0)