Skip to content

Commit 6b1d0b6

Browse files
committed
added:download bt protocol for action
1 parent eb2af7c commit 6b1d0b6

File tree

2 files changed

+101
-42
lines changed

2 files changed

+101
-42
lines changed

XEngine_Source/XEngine_StorageApp/StorageApp_Hdr.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,8 @@ using namespace std;
6262
#include "../StorageModule_Protocol/StorageProtocol_Error.h"
6363
#include "../StorageModule_APIHelp/APIHelp_Define.h"
6464
#include "../StorageModule_APIHelp/APIHelp_Error.h"
65+
#include "../StorageModule_BTorrent/BTorrent_Define.h"
66+
#include "../StorageModule_BTorrent/BTorrent_Error.h"
6567
#include "../XEngine_Depend/XEngine_Module/XEngine_InfoReport/InfoReport_Define.h"
6668
#include "../XEngine_Depend/XEngine_Module/XEngine_InfoReport/InfoReport_Error.h"
6769

@@ -143,20 +145,23 @@ extern XENGINE_LBCONFIG st_LoadbalanceCfg;
143145
#pragma comment(lib,"../x64/Debug/StorageModule_APIHelp.lib")
144146
#pragma comment(lib,"../x64/Debug/StorageModule_Protocol.lib")
145147
#pragma comment(lib,"../x64/Debug/StorageModule_Database.lib")
148+
#pragma comment(lib,"../x64/Debug/StorageModule_BTorrent.lib")
146149
#pragma comment(lib,"../x64/Debug/XEngine_InfoReport.lib")
147150
#elif _M_ARM64
148151
#pragma comment(lib,"../ARM64/Debug/StorageModule_Session.lib")
149152
#pragma comment(lib,"../ARM64/Debug/StorageModule_Config.lib")
150153
#pragma comment(lib,"../ARM64/Debug/StorageModule_APIHelp.lib")
151154
#pragma comment(lib,"../ARM64/Debug/StorageModule_Protocol.lib")
152155
#pragma comment(lib,"../ARM64/Debug/StorageModule_Database.lib")
156+
#pragma comment(lib,"../ARM64/Debug/StorageModule_BTorrent.lib")
153157
#pragma comment(lib,"../ARM64/Debug/XEngine_InfoReport.lib")
154158
#elif _M_IX86
155159
#pragma comment(lib,"../Debug/StorageModule_Session.lib")
156160
#pragma comment(lib,"../Debug/StorageModule_Config.lib")
157161
#pragma comment(lib,"../Debug/StorageModule_APIHelp.lib")
158162
#pragma comment(lib,"../Debug/StorageModule_Protocol.lib")
159163
#pragma comment(lib,"../Debug/StorageModule_Database.lib")
164+
#pragma comment(lib,"../Debug/StorageModule_BTorrent.lib")
160165
#pragma comment(lib,"../Debug/XEngine_InfoReport.lib")
161166
#endif
162167
#else
@@ -166,20 +171,23 @@ extern XENGINE_LBCONFIG st_LoadbalanceCfg;
166171
#pragma comment(lib,"../x64/Release/StorageModule_APIHelp.lib")
167172
#pragma comment(lib,"../x64/Release/StorageModule_Protocol.lib")
168173
#pragma comment(lib,"../x64/Release/StorageModule_Database.lib")
174+
#pragma comment(lib,"../x64/Release/StorageModule_BTorrent.lib")
169175
#pragma comment(lib,"../x64/Release/XEngine_InfoReport.lib")
170176
#elif _M_ARM64
171177
#pragma comment(lib,"../ARM64/Release/StorageModule_Session.lib")
172178
#pragma comment(lib,"../ARM64/Release/StorageModule_Config.lib")
173179
#pragma comment(lib,"../ARM64/Release/StorageModule_APIHelp.lib")
174180
#pragma comment(lib,"../ARM64/Release/StorageModule_Protocol.lib")
175181
#pragma comment(lib,"../ARM64/Release/StorageModule_Database.lib")
182+
#pragma comment(lib,"../ARM64/Release/StorageModule_BTorrent.lib")
176183
#pragma comment(lib,"../ARM64/Release/XEngine_InfoReport.lib")
177184
#elif _M_IX86
178185
#pragma comment(lib,"../Release/StorageModule_Session.lib")
179186
#pragma comment(lib,"../Release/StorageModule_Config.lib")
180187
#pragma comment(lib,"../Release/StorageModule_APIHelp.lib")
181188
#pragma comment(lib,"../Release/StorageModule_Protocol.lib")
182189
#pragma comment(lib,"../Release/StorageModule_Database.lib")
190+
#pragma comment(lib,"../Release/StorageModule_BTorrent.lib")
183191
#pragma comment(lib,"../Release/XEngine_InfoReport.lib")
184192
#endif
185193
#endif

XEngine_Source/XEngine_StorageApp/Storage_APPTask/Storage_TaskAction.cpp

Lines changed: 93 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -9,32 +9,59 @@ XHTHREAD Session_Action_Thread()
99
Session_Action_GetAll(&ppxhToken, &nListCount);
1010
for (int i = 0; i < nListCount; i++)
1111
{
12-
XCLIENT_APIFILE st_TaskInfo = {};
13-
XHANDLE xhAction = Session_Action_GetToken((*ppxhToken)[i]);
14-
15-
if (!APIClient_File_Query(xhAction, &st_TaskInfo))
16-
{
17-
Session_Action_Delete((*ppxhToken)[i]);
18-
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _X("转录动作线程:查询文件传输信息失败,句柄:%lld,错误:%lX"), (*ppxhToken)[i], Session_GetLastError());
19-
continue;
20-
}
2112
XENGINE_ACTIONINFO st_ActionInfo = {};
2213
Session_Action_GetInfo((*ppxhToken)[i], &st_ActionInfo);
23-
if (ENUM_XCLIENT_APIHELP_FILE_STATUS_COMPLETE == st_TaskInfo.en_DownStatus)
24-
{
25-
APIClient_File_Delete(xhAction);
26-
Session_Action_Delete((*ppxhToken)[i]);
27-
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("转录动作线程:完成文件转录下载,句柄:%lld,URL:%s,Bucket:%s,FileName:%s"), (*ppxhToken)[i], st_ActionInfo.tszFileUrl, st_ActionInfo.tszBucketStr, st_ActionInfo.tszFileName);
28-
}
29-
else if (ENUM_XCLIENT_APIHELP_FILE_STATUS_DOWNLOADDING == st_TaskInfo.en_DownStatus || ENUM_XCLIENT_APIHELP_FILE_STATUS_INIT == st_TaskInfo.en_DownStatus)
14+
15+
if (0 == st_ActionInfo.byType || 1 == st_ActionInfo.byType)
3016
{
31-
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("转录动作线程:文件转录进行中,句柄:%lld,URL:%s,Bucket:%s,FileName:%s,大小:%lf,已处理大小:%lf"), (*ppxhToken)[i], st_ActionInfo.tszFileUrl, st_ActionInfo.tszBucketStr, st_ActionInfo.tszFileName, st_TaskInfo.dlTotal, st_TaskInfo.dlNow);
17+
XCLIENT_APIFILE st_TaskInfo = {};
18+
XHANDLE xhAction = Session_Action_GetToken((*ppxhToken)[i]);
19+
if (!APIClient_File_Query(xhAction, &st_TaskInfo))
20+
{
21+
Session_Action_Delete((*ppxhToken)[i]);
22+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _X("转录动作线程:查询文件传输信息失败,句柄:%lld,错误:%lX"), (*ppxhToken)[i], Session_GetLastError());
23+
continue;
24+
}
25+
26+
if (ENUM_XCLIENT_APIHELP_FILE_STATUS_COMPLETE == st_TaskInfo.en_DownStatus)
27+
{
28+
APIClient_File_Delete(xhAction);
29+
Session_Action_Delete((*ppxhToken)[i]);
30+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("转录动作线程:完成文件转录下载,句柄:%lld,URL:%s,Bucket:%s,FileName:%s"), (*ppxhToken)[i], st_ActionInfo.tszFileUrl, st_ActionInfo.tszBucketStr, st_ActionInfo.tszFileName);
31+
}
32+
else if (ENUM_XCLIENT_APIHELP_FILE_STATUS_DOWNLOADDING == st_TaskInfo.en_DownStatus || ENUM_XCLIENT_APIHELP_FILE_STATUS_INIT == st_TaskInfo.en_DownStatus)
33+
{
34+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("转录动作线程:文件转录进行中,句柄:%lld,URL:%s,Bucket:%s,FileName:%s,大小:%lf,已处理大小:%lf"), (*ppxhToken)[i], st_ActionInfo.tszFileUrl, st_ActionInfo.tszBucketStr, st_ActionInfo.tszFileName, st_TaskInfo.dlTotal, st_TaskInfo.dlNow);
35+
}
36+
else
37+
{
38+
APIClient_File_Delete(xhAction);
39+
Session_Action_Delete((*ppxhToken)[i]);
40+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("转录动作线程:文件转录失败,句柄:%lld,URL:%s,Bucket:%s,FileName:%s,错误:%lX"), (*ppxhToken)[i], st_ActionInfo.tszFileUrl, st_ActionInfo.tszBucketStr, st_ActionInfo.tszFileName, Session_GetLastError());
41+
}
3242
}
3343
else
3444
{
35-
APIClient_File_Delete(xhAction);
36-
Session_Action_Delete((*ppxhToken)[i]);
37-
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("转录动作线程:文件转录失败,句柄:%lld,URL:%s,Bucket:%s,FileName:%s,错误:%lX"), (*ppxhToken)[i], st_ActionInfo.tszFileUrl, st_ActionInfo.tszBucketStr, st_ActionInfo.tszFileName, Session_GetLastError());
45+
XHANDLE xhAction = Session_Action_GetToken((*ppxhToken)[i]);
46+
47+
BTORRENT_DLOADER st_DLStatus = {};
48+
if (!BTorrent_DLoader_GetStatus(xhAction, &st_DLStatus))
49+
{
50+
Session_Action_Delete((*ppxhToken)[i]);
51+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _X("转录动作线程:查询文件传输信息失败,句柄:%lld,错误:%lX"), (*ppxhToken)[i], Session_GetLastError());
52+
continue;
53+
}
54+
55+
if (ENUM_BTORRENT_DOWNLOAD_STATUS_FINISH == st_DLStatus.nDLStatus || ENUM_BTORRENT_DOWNLOAD_STATUS_SEEDING == st_DLStatus.nDLStatus)
56+
{
57+
BTorrent_DLoader_Close(xhAction);
58+
Session_Action_Delete((*ppxhToken)[i]);
59+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("转录动作线程:完成文件转录下载,句柄:%lld,URL:%s,Bucket:%s,FileName:%s"), (*ppxhToken)[i], st_ActionInfo.tszFileUrl, st_ActionInfo.tszBucketStr, st_ActionInfo.tszFileName);
60+
}
61+
else
62+
{
63+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("转录动作线程:文件转录进行中,句柄:%lld,URL:%s,Bucket:%s,FileName:%s,大小:%lf,已处理大小:%lf"), (*ppxhToken)[i], st_ActionInfo.tszFileUrl, st_ActionInfo.tszBucketStr, st_ActionInfo.tszFileName, st_DLStatus.nDLoadTotal, st_DLStatus.nDLCount);
64+
}
3865
}
3966
}
4067
BaseLib_Memory_Free((XPPPMEM)&ppxhToken, nListCount);
@@ -75,49 +102,73 @@ bool Storage_TaskAction(LPCXSTR lpszAPIName, LPCXSTR lpszClientAddr, LPCXSTR lps
75102
return false;
76103
}
77104
_xstprintf(tszFileName, _X("%s/%s"), st_StorageBucket.tszFilePath, st_ActionInfo.tszFileName);
78-
if (0 == _tcsxnicmp(lpszAPIDownload, lpszAPIName, _tcsxlen(lpszAPIDownload)))
105+
106+
if (0 == st_ActionInfo.byType || 1 == st_ActionInfo.byType)
79107
{
80-
XNETHANDLE xhToken = 0;
81-
BaseLib_Handle_Create(&xhToken);
108+
if (0 == _tcsxnicmp(lpszAPIDownload, lpszAPIName, _tcsxlen(lpszAPIDownload)))
109+
{
110+
XNETHANDLE xhToken = 0;
111+
BaseLib_Handle_Create(&xhToken);
82112

83-
XHANDLE xhAction = APIClient_File_Create(st_ActionInfo.tszFileUrl, tszFileName, true);
84-
if (NULL == xhAction)
113+
XHANDLE xhAction = APIClient_File_Create(st_ActionInfo.tszFileUrl, tszFileName, true);
114+
if (NULL == xhAction)
115+
{
116+
st_HDRParam.nHttpCode = 501;
117+
HttpProtocol_Server_SendMsgEx(xhCenterHttp, tszSDBuffer, &nSDLen, &st_HDRParam);
118+
XEngine_Net_SendMsg(lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPCENTER);
119+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("业务客户端:%s,处理用户转录动作失败,下载文件失败,URL:%s,路径:%s,Bucket:%s,类型:%d"), lpszClientAddr, st_ActionInfo.tszFileUrl, tszFileName, st_ActionInfo.tszBucketStr, st_ActionInfo.byType);
120+
return false;
121+
}
122+
APIClient_File_SetMaxSpeed(xhAction, st_ServiceCfg.st_XAction.nSDMax, st_ServiceCfg.st_XAction.nRVMax);
123+
APIClient_File_Start(xhAction);
124+
Session_Action_Insert(xhToken, xhAction, &st_ActionInfo);
125+
Protocol_StoragePacket_Action(tszRVBuffer, &nRVLen, xhToken, &st_ActionInfo);
126+
HttpProtocol_Server_SendMsgEx(xhCenterHttp, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen);
127+
XEngine_Net_SendMsg(lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPCENTER);
128+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("业务客户端:%s,处理用户下载动作成功,URL:%s,路径:%s,句柄:%lld,类型:%d"), lpszClientAddr, st_ActionInfo.tszFileUrl, tszFileName, xhToken, st_ActionInfo.byType);
129+
}
130+
else if (0 == _tcsxnicmp(lpszAPIUPload, lpszAPIName, _tcsxlen(lpszAPIUPload)))
85131
{
86-
st_HDRParam.nHttpCode = 501;
87-
HttpProtocol_Server_SendMsgEx(xhCenterHttp, tszSDBuffer, &nSDLen, &st_HDRParam);
132+
XNETHANDLE xhToken = 0;
133+
BaseLib_Handle_Create(&xhToken);
134+
135+
XHANDLE xhAction = APIClient_File_Create(st_ActionInfo.tszFileUrl, tszFileName, false);
136+
if (NULL == xhAction)
137+
{
138+
st_HDRParam.nHttpCode = 501;
139+
HttpProtocol_Server_SendMsgEx(xhCenterHttp, tszSDBuffer, &nSDLen, &st_HDRParam);
140+
XEngine_Net_SendMsg(lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPCENTER);
141+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("业务客户端:%s,处理用户转录动作失败,下载文件失败,URL:%s,路径:%s,Bucket:%s,类型:%d"), lpszClientAddr, st_ActionInfo.tszFileUrl, tszFileName, st_ActionInfo.tszBucketStr, st_ActionInfo.byType);
142+
return false;
143+
}
144+
APIClient_File_SetMaxSpeed(xhAction, st_ServiceCfg.st_XAction.nSDMax, st_ServiceCfg.st_XAction.nRVMax);
145+
APIClient_File_Start(xhAction);
146+
Session_Action_Insert(xhToken, xhAction, &st_ActionInfo);
147+
Protocol_StoragePacket_Action(tszRVBuffer, &nRVLen, xhToken, &st_ActionInfo);
148+
HttpProtocol_Server_SendMsgEx(xhCenterHttp, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen);
88149
XEngine_Net_SendMsg(lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPCENTER);
89-
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("业务客户端:%s,处理用户转录动作失败,下载文件失败,URL:%s,路径:%s,Bucket:%s"), lpszClientAddr, st_ActionInfo.tszFileUrl, tszFileName, st_ActionInfo.tszBucketStr);
90-
return false;
150+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("业务客户端:%s,处理用户上传动作成功,URL:%s,路径:%s,句柄:%lld,类型:%d"), lpszClientAddr, st_ActionInfo.tszFileUrl, tszFileName, xhToken, st_ActionInfo.byType);
91151
}
92-
APIClient_File_SetMaxSpeed(xhAction, st_ServiceCfg.st_XAction.nSDMax, st_ServiceCfg.st_XAction.nRVMax);
93-
APIClient_File_Start(xhAction);
94-
Session_Action_Insert(xhToken, xhAction, &st_ActionInfo);
95-
Protocol_StoragePacket_Action(tszRVBuffer, &nRVLen, xhToken, &st_ActionInfo);
96-
HttpProtocol_Server_SendMsgEx(xhCenterHttp, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen);
97-
XEngine_Net_SendMsg(lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPCENTER);
98-
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("业务客户端:%s,处理用户下载动作成功,URL:%s,路径:%s,句柄:%lld"), lpszClientAddr, st_ActionInfo.tszFileUrl, tszFileName, xhToken);
99152
}
100-
else if (0 == _tcsxnicmp(lpszAPIUPload, lpszAPIName, _tcsxlen(lpszAPIUPload)))
153+
else if (2 == st_ActionInfo.byType)
101154
{
102155
XNETHANDLE xhToken = 0;
103156
BaseLib_Handle_Create(&xhToken);
104157

105-
XHANDLE xhAction = APIClient_File_Create(st_ActionInfo.tszFileUrl, tszFileName, false);
158+
XHANDLE xhAction = BTorrent_DLoader_Create(st_ActionInfo.tszFileUrl, tszFileName);
106159
if (NULL == xhAction)
107160
{
108161
st_HDRParam.nHttpCode = 501;
109162
HttpProtocol_Server_SendMsgEx(xhCenterHttp, tszSDBuffer, &nSDLen, &st_HDRParam);
110163
XEngine_Net_SendMsg(lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPCENTER);
111-
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("业务客户端:%s,处理用户转录动作失败,下载文件失败,URL:%s,路径:%s,Bucket:%s"), lpszClientAddr, st_ActionInfo.tszFileUrl, tszFileName, st_ActionInfo.tszBucketStr);
164+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("业务客户端:%s,处理用户转录动作失败,下载文件失败,URL:%s,路径:%s,Bucket:%s,类型:%d"), lpszClientAddr, st_ActionInfo.tszFileUrl, tszFileName, st_ActionInfo.tszBucketStr, st_ActionInfo.byType);
112165
return false;
113166
}
114-
APIClient_File_SetMaxSpeed(xhAction, st_ServiceCfg.st_XAction.nSDMax, st_ServiceCfg.st_XAction.nRVMax);
115-
APIClient_File_Start(xhAction);
116167
Session_Action_Insert(xhToken, xhAction, &st_ActionInfo);
117168
Protocol_StoragePacket_Action(tszRVBuffer, &nRVLen, xhToken, &st_ActionInfo);
118169
HttpProtocol_Server_SendMsgEx(xhCenterHttp, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen);
119170
XEngine_Net_SendMsg(lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPCENTER);
120-
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("业务客户端:%s,处理用户上传动作成功,URL:%s,路径:%s,句柄:%lld"), lpszClientAddr, st_ActionInfo.tszFileUrl, tszFileName, xhToken);
171+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("业务客户端:%s,处理用户下载动作成功,URL:%s,路径:%s,句柄:%lld,类型:%d"), lpszClientAddr, st_ActionInfo.tszFileUrl, tszFileName, xhToken, st_ActionInfo.byType);
121172
}
122173

123174
return true;

0 commit comments

Comments
 (0)