Skip to content

Commit eb2af7c

Browse files
committed
modify:bt module handle type
1 parent 0ed2264 commit eb2af7c

File tree

9 files changed

+265
-374
lines changed

9 files changed

+265
-374
lines changed

XEngine_Source/StorageModule_BTorrent/BTorrent_Creator/BTorrent_Creator.cpp

Lines changed: 67 additions & 94 deletions
Original file line numberDiff line numberDiff line change
@@ -23,60 +23,54 @@ CBTorrent_Creator::~CBTorrent_Creator()
2323
/********************************************************************
2424
函数名称:BTorrent_Creator_Init
2525
函数功能:初始化一个制作工具
26-
参数.一:pxhToken
27-
In/Out:In
28-
类型:句柄
29-
可空:N
30-
意思:导出一个句柄
31-
参数.二:lpszBTPath
26+
参数.一:lpszBTPath
3227
In/Out:In
3328
类型:常量字符指针
3429
可空:N
3530
意思:要制作的文件地址路径
36-
参数.:nPieceSize
31+
参数.:nPieceSize
3732
In/Out:In
3833
类型:整数型
3934
可空:N
4035
意思:块大小,默认16K
4136
返回值
42-
类型:逻辑型
43-
意思:是否成功
37+
类型:句柄
38+
意思:导出一个句柄
4439
备注:
4540
*********************************************************************/
46-
bool CBTorrent_Creator::BTorrent_Creator_Init(XNETHANDLE* pxhToken, LPCXSTR lpszBTPath, int nPieceSize)
41+
XHANDLE CBTorrent_Creator::BTorrent_Creator_Init(LPCXSTR lpszBTPath, int nPieceSize)
4742
{
4843
BTDload_IsErrorOccur = false;
4944

50-
if ((NULL == pxhToken) || (NULL == lpszBTPath))
45+
if ((NULL == lpszBTPath))
5146
{
5247
BTDload_IsErrorOccur = true;
5348
BTDload_dwErrorCode = ERROR_STORAGE_MODULE_BTORRENT_CREATOR_INIT_PARAMENT;
54-
return false;
49+
return NULL;
5550
}
5651
//申请空间
57-
BTORRENT_CREATORINFO st_BTCreator;
58-
memset(&st_BTCreator, '\0', sizeof(BTORRENT_CREATORINFO));
59-
52+
BTORRENT_CREATORINFO* pSt_BTCreator = new BTORRENT_CREATORINFO;
53+
if (NULL == pSt_BTCreator)
54+
{
55+
BTDload_IsErrorOccur = true;
56+
BTDload_dwErrorCode = ERROR_STORAGE_MODULE_BTORRENT_CREATOR_INIT_MALLOC;
57+
return NULL;
58+
}
59+
*pSt_BTCreator = {};
6060
//申请内存
61-
st_BTCreator.pStl_ListNode = new list<BTORRENT_PARSEMAP>;
62-
st_BTCreator.pStl_ListSeeds = new list<BTORRENT_PARSEMAP>;
63-
st_BTCreator.pStl_ListTracker = new list<BTORRENT_PARSEMAP>;
64-
65-
if ((NULL == st_BTCreator.pStl_ListNode) || (NULL == st_BTCreator.pStl_ListSeeds) || (NULL == st_BTCreator.pStl_ListTracker))
61+
pSt_BTCreator->pStl_ListNode = new list<BTORRENT_PARSEMAP>;
62+
pSt_BTCreator->pStl_ListSeeds = new list<BTORRENT_PARSEMAP>;
63+
pSt_BTCreator->pStl_ListTracker = new list<BTORRENT_PARSEMAP>;
64+
if ((NULL == pSt_BTCreator->pStl_ListNode) || (NULL == pSt_BTCreator->pStl_ListSeeds) || (NULL == pSt_BTCreator->pStl_ListTracker))
6665
{
6766
BTDload_IsErrorOccur = true;
6867
BTDload_dwErrorCode = ERROR_STORAGE_MODULE_BTORRENT_CREATOR_INIT_MALLOC;
69-
return false;
68+
return NULL;
7069
}
7170

72-
st_BTCreator.m_nPieceSize = nPieceSize;
73-
_tcsxcpy(st_BTCreator.tszBTPath, lpszBTPath);
74-
75-
BaseLib_Handle_Create(pxhToken);
76-
st_Locker.lock();
77-
stl_MapBTCreator.insert(make_pair(*pxhToken, st_BTCreator));
78-
st_Locker.unlock();
79-
return true;
71+
pSt_BTCreator->m_nPieceSize = nPieceSize;
72+
_tcsxcpy(pSt_BTCreator->tszBTPath, lpszBTPath);
73+
return pSt_BTCreator;
8074
}
8175
/********************************************************************
8276
函数名称:BTorrent_Creator_AddNode
@@ -101,7 +95,7 @@ bool CBTorrent_Creator::BTorrent_Creator_Init(XNETHANDLE* pxhToken, LPCXSTR lpsz
10195
意思:是否成功
10296
备注:
10397
*********************************************************************/
104-
bool CBTorrent_Creator::BTorrent_Creator_AddNode(XNETHANDLE xhToken, LPCXSTR lpszAddr, int nIndex)
98+
bool CBTorrent_Creator::BTorrent_Creator_AddNode(XHANDLE xhToken, LPCXSTR lpszAddr, int nIndex)
10599
{
106100
BTDload_IsErrorOccur = false;
107101

@@ -111,22 +105,19 @@ bool CBTorrent_Creator::BTorrent_Creator_AddNode(XNETHANDLE xhToken, LPCXSTR lps
111105
BTDload_dwErrorCode = ERROR_STORAGE_MODULE_BTORRENT_CREATOR_NODE_PARAMENT;
112106
return false;
113107
}
114-
st_Locker.lock_shared();
115-
unordered_map<XNETHANDLE, BTORRENT_CREATORINFO>::const_iterator stl_MapIterator = stl_MapBTCreator.find(xhToken);
116-
if (stl_MapIterator == stl_MapBTCreator.end())
108+
BTORRENT_CREATORINFO* pSt_BTCreator = (BTORRENT_CREATORINFO*)xhToken;
109+
if (NULL == pSt_BTCreator)
117110
{
118111
BTDload_IsErrorOccur = true;
119112
BTDload_dwErrorCode = ERROR_STORAGE_MODULE_BTORRENT_CREATOR_NODE_NOTFOUND;
120-
st_Locker.unlock_shared();
121113
return false;
122114
}
123115
BTORRENT_PARSEMAP st_BTInfo;
124116
memset(&st_BTInfo, '\0', sizeof(BTORRENT_PARSEMAP));
125117

126118
st_BTInfo.nValue = nIndex;
127119
_tcsxcpy(st_BTInfo.tszValue, lpszAddr);
128-
stl_MapIterator->second.pStl_ListNode->push_back(st_BTInfo);
129-
st_Locker.unlock_shared();
120+
pSt_BTCreator->pStl_ListNode->push_back(st_BTInfo);
130121
return true;
131122
}
132123
/********************************************************************
@@ -152,7 +143,7 @@ bool CBTorrent_Creator::BTorrent_Creator_AddNode(XNETHANDLE xhToken, LPCXSTR lps
152143
意思:是否成功
153144
备注:
154145
*********************************************************************/
155-
bool CBTorrent_Creator::BTorrent_Creator_AddTracker(XNETHANDLE xhToken, LPCXSTR lpszAddr, int nIndex)
146+
bool CBTorrent_Creator::BTorrent_Creator_AddTracker(XHANDLE xhToken, LPCXSTR lpszAddr, int nIndex)
156147
{
157148
BTDload_IsErrorOccur = false;
158149

@@ -162,22 +153,19 @@ bool CBTorrent_Creator::BTorrent_Creator_AddTracker(XNETHANDLE xhToken, LPCXSTR
162153
BTDload_dwErrorCode = ERROR_STORAGE_MODULE_BTORRENT_CREATOR_TRACKER_PARAMENT;
163154
return false;
164155
}
165-
st_Locker.lock_shared();
166-
unordered_map<XNETHANDLE, BTORRENT_CREATORINFO>::const_iterator stl_MapIterator = stl_MapBTCreator.find(xhToken);
167-
if (stl_MapIterator == stl_MapBTCreator.end())
156+
BTORRENT_CREATORINFO* pSt_BTCreator = (BTORRENT_CREATORINFO*)xhToken;
157+
if (NULL == pSt_BTCreator)
168158
{
169159
BTDload_IsErrorOccur = true;
170160
BTDload_dwErrorCode = ERROR_STORAGE_MODULE_BTORRENT_CREATOR_TRACKER_NOTFOUND;
171-
st_Locker.unlock_shared();
172161
return false;
173162
}
174163
BTORRENT_PARSEMAP st_BTInfo;
175164
memset(&st_BTInfo, '\0', sizeof(BTORRENT_PARSEMAP));
176165

177166
st_BTInfo.nValue = nIndex;
178167
_tcsxcpy(st_BTInfo.tszValue, lpszAddr);
179-
stl_MapIterator->second.pStl_ListTracker->push_back(st_BTInfo);
180-
st_Locker.unlock_shared();
168+
pSt_BTCreator->pStl_ListTracker->push_back(st_BTInfo);
181169
return true;
182170
}
183171
/********************************************************************
@@ -203,7 +191,7 @@ bool CBTorrent_Creator::BTorrent_Creator_AddTracker(XNETHANDLE xhToken, LPCXSTR
203191
意思:是否成功
204192
备注:
205193
*********************************************************************/
206-
bool CBTorrent_Creator::BTorrent_Creator_AddSeeds(XNETHANDLE xhToken, LPCXSTR lpszAddr, bool bSingle)
194+
bool CBTorrent_Creator::BTorrent_Creator_AddSeeds(XHANDLE xhToken, LPCXSTR lpszAddr, bool bSingle)
207195
{
208196
BTDload_IsErrorOccur = false;
209197

@@ -213,22 +201,19 @@ bool CBTorrent_Creator::BTorrent_Creator_AddSeeds(XNETHANDLE xhToken, LPCXSTR lp
213201
BTDload_dwErrorCode = ERROR_STORAGE_MODULE_BTORRENT_CREATOR_SEEDS_PARAMENT;
214202
return false;
215203
}
216-
st_Locker.lock_shared();
217-
unordered_map<XNETHANDLE, BTORRENT_CREATORINFO>::const_iterator stl_MapIterator = stl_MapBTCreator.find(xhToken);
218-
if (stl_MapIterator == stl_MapBTCreator.end())
204+
BTORRENT_CREATORINFO* pSt_BTCreator = (BTORRENT_CREATORINFO*)xhToken;
205+
if (NULL == pSt_BTCreator)
219206
{
220207
BTDload_IsErrorOccur = true;
221208
BTDload_dwErrorCode = ERROR_STORAGE_MODULE_BTORRENT_CREATOR_SEEDS_NOTFOUND;
222-
st_Locker.unlock_shared();
223209
return false;
224210
}
225211
BTORRENT_PARSEMAP st_BTInfo;
226212
memset(&st_BTInfo, '\0', sizeof(BTORRENT_PARSEMAP));
227213

228214
st_BTInfo.nValue = bSingle;
229215
_tcsxcpy(st_BTInfo.tszValue, lpszAddr);
230-
stl_MapIterator->second.pStl_ListSeeds->push_back(st_BTInfo);
231-
st_Locker.unlock_shared();
216+
pSt_BTCreator->pStl_ListSeeds->push_back(st_BTInfo);
232217
return true;
233218
}
234219
/********************************************************************
@@ -259,7 +244,7 @@ bool CBTorrent_Creator::BTorrent_Creator_AddSeeds(XNETHANDLE xhToken, LPCXSTR lp
259244
意思:是否成功
260245
备注:
261246
*********************************************************************/
262-
bool CBTorrent_Creator::BTorrent_Creator_SetInfo(XNETHANDLE xhToken, LPCXSTR lpszCreator, LPCXSTR lpszComment /* = NULL */, LPCXSTR lpszCertBuffer /* = NULL */)
247+
bool CBTorrent_Creator::BTorrent_Creator_SetInfo(XHANDLE xhToken, LPCXSTR lpszCreator, LPCXSTR lpszComment /* = NULL */, LPCXSTR lpszCertBuffer /* = NULL */)
263248
{
264249
BTDload_IsErrorOccur = false;
265250

@@ -269,25 +254,22 @@ bool CBTorrent_Creator::BTorrent_Creator_SetInfo(XNETHANDLE xhToken, LPCXSTR lps
269254
BTDload_dwErrorCode = ERROR_STORAGE_MODULE_BTORRENT_CREATOR_INFO_PARAMENT;
270255
return false;
271256
}
272-
st_Locker.lock_shared();
273-
unordered_map<XNETHANDLE, BTORRENT_CREATORINFO>::iterator stl_MapIterator = stl_MapBTCreator.find(xhToken);
274-
if (stl_MapIterator == stl_MapBTCreator.end())
257+
BTORRENT_CREATORINFO* pSt_BTCreator = (BTORRENT_CREATORINFO*)xhToken;
258+
if (NULL == pSt_BTCreator)
275259
{
276260
BTDload_IsErrorOccur = true;
277261
BTDload_dwErrorCode = ERROR_STORAGE_MODULE_BTORRENT_CREATOR_INFO_NOTFOUND;
278-
st_Locker.unlock_shared();
279262
return false;
280263
}
281-
_tcsxcpy(stl_MapIterator->second.tszCreate, lpszCreator);
264+
_tcsxcpy(pSt_BTCreator->tszCreate, lpszCreator);
282265
if (NULL != lpszComment)
283266
{
284-
_tcsxcpy(stl_MapIterator->second.tszComment, lpszComment);
267+
_tcsxcpy(pSt_BTCreator->tszComment, lpszComment);
285268
}
286269
if (NULL != lpszCertBuffer)
287270
{
288-
_tcsxcpy(stl_MapIterator->second.tszPEMCert, lpszCertBuffer);
271+
_tcsxcpy(pSt_BTCreator->tszPEMCert, lpszCertBuffer);
289272
}
290-
st_Locker.unlock_shared();
291273
return true;
292274
}
293275
/********************************************************************
@@ -318,7 +300,7 @@ bool CBTorrent_Creator::BTorrent_Creator_SetInfo(XNETHANDLE xhToken, LPCXSTR lps
318300
意思:是否成功
319301
备注:
320302
*********************************************************************/
321-
bool CBTorrent_Creator::BTorrent_Creator_GetTorrent(XNETHANDLE xhToken, LPCXSTR lpszBTFile /* = NULL */, XCHAR* ptszMsgBuffer /* = NULL */, int* pInt_MsgLen /* = NULL */)
303+
bool CBTorrent_Creator::BTorrent_Creator_GetTorrent(XHANDLE xhToken, LPCXSTR lpszBTFile /* = NULL */, XCHAR* ptszMsgBuffer /* = NULL */, int* pInt_MsgLen /* = NULL */)
322304
{
323305
BTDload_IsErrorOccur = false;
324306

@@ -328,13 +310,11 @@ bool CBTorrent_Creator::BTorrent_Creator_GetTorrent(XNETHANDLE xhToken, LPCXSTR
328310
BTDload_dwErrorCode = ERROR_STORAGE_MODULE_BTORRENT_CREATOR_FILE_PARAMENT;
329311
return false;
330312
}
331-
st_Locker.lock_shared();
332-
unordered_map<XNETHANDLE, BTORRENT_CREATORINFO>::iterator stl_MapIterator = stl_MapBTCreator.find(xhToken);
333-
if (stl_MapIterator == stl_MapBTCreator.end())
313+
BTORRENT_CREATORINFO* pSt_BTCreator = (BTORRENT_CREATORINFO*)xhToken;
314+
if (NULL == pSt_BTCreator)
334315
{
335316
BTDload_IsErrorOccur = true;
336317
BTDload_dwErrorCode = ERROR_STORAGE_MODULE_BTORRENT_CREATOR_FILE_NOTFOUND;
337-
st_Locker.unlock_shared();
338318
return false;
339319
}
340320
#if 1 == _XENGIEN_STORAGE_BUILDSWITCH_BTORRENT
@@ -343,34 +323,34 @@ bool CBTorrent_Creator::BTorrent_Creator_GetTorrent(XNETHANDLE xhToken, LPCXSTR
343323
//种子的标示
344324
m_BTFlags |= lt::create_torrent::modification_time;
345325
//解析文件
346-
lt::add_files(m_BTFile, stl_MapIterator->second.tszBTPath, m_BTFlags);
326+
lt::add_files(m_BTFile, pSt_BTCreator->tszBTPath, m_BTFlags);
347327
if (m_BTFile.num_files() <= 0)
348328
{
349329
BTDload_IsErrorOccur = true;
350330
BTDload_dwErrorCode = ERROR_STORAGE_MODULE_BTORRENT_CREATOR_FILE_PARSE;
351331
return false;
352332
}
353333
//创建BT种子,种子文件解析的数据,块大小,附加信息,种子标志
354-
lt::create_torrent m_BTCreator(m_BTFile, stl_MapIterator->second.m_nPieceSize, m_BTFlags);
334+
lt::create_torrent m_BTCreator(m_BTFile, pSt_BTCreator->m_nPieceSize, m_BTFlags);
355335
//给创建起赋值
356-
m_BTCreator.set_creator(stl_MapIterator->second.tszCreate);
357-
m_BTCreator.set_comment(stl_MapIterator->second.tszComment);
358-
m_BTCreator.set_root_cert(stl_MapIterator->second.tszPEMCert);
336+
m_BTCreator.set_creator(pSt_BTCreator->tszCreate);
337+
m_BTCreator.set_comment(pSt_BTCreator->tszComment);
338+
m_BTCreator.set_root_cert(pSt_BTCreator->tszPEMCert);
359339
//节点添加
360-
list<BTORRENT_PARSEMAP>::const_iterator stl_ListNodeIterator = stl_MapIterator->second.pStl_ListNode->begin();
361-
for (; stl_ListNodeIterator != stl_MapIterator->second.pStl_ListNode->end(); stl_MapIterator++)
340+
list<BTORRENT_PARSEMAP>::const_iterator stl_ListNodeIterator = pSt_BTCreator->pStl_ListNode->begin();
341+
for (; stl_ListNodeIterator != pSt_BTCreator->pStl_ListNode->end(); stl_MapIterator++)
362342
{
363343
m_BTCreator.add_node(make_pair(stl_ListNodeIterator->tszValue, stl_ListNodeIterator->nValue));
364344
}
365345
//添加服务
366-
list<BTORRENT_PARSEMAP>::const_iterator stl_ListTrackerIterator = stl_MapIterator->second.pStl_ListTracker->begin();
367-
for (; stl_ListTrackerIterator != stl_MapIterator->second.pStl_ListTracker->end(); stl_ListTrackerIterator++)
346+
list<BTORRENT_PARSEMAP>::const_iterator stl_ListTrackerIterator = pSt_BTCreator->pStl_ListTracker->begin();
347+
for (; stl_ListTrackerIterator != pSt_BTCreator->pStl_ListTracker->end(); stl_ListTrackerIterator++)
368348
{
369349
m_BTCreator.add_tracker(stl_ListTrackerIterator->tszValue, stl_ListTrackerIterator->nValue);
370350
}
371351
//添加SEED服务
372-
list<BTORRENT_PARSEMAP>::const_iterator stl_ListSeedIterator = stl_MapIterator->second.pStl_ListSeeds->begin();
373-
for (; stl_ListSeedIterator != stl_MapIterator->second.pStl_ListSeeds->end(); stl_ListSeedIterator++)
352+
list<BTORRENT_PARSEMAP>::const_iterator stl_ListSeedIterator = pSt_BTCreator->pStl_ListSeeds->begin();
353+
for (; stl_ListSeedIterator != pSt_BTCreator->pStl_ListSeeds->end(); stl_ListSeedIterator++)
374354
{
375355
//添加URL种子,单文件为HTTP的URL,多文件为SEED
376356
if (stl_ListSeedIterator->nValue)
@@ -395,7 +375,6 @@ bool CBTorrent_Creator::BTorrent_Creator_GetTorrent(XNETHANDLE xhToken, LPCXSTR
395375
{
396376
BTDload_IsErrorOccur = true;
397377
BTDload_dwErrorCode = ERROR_STORAGE_MODULE_BTORRENT_CREATOR_FILE_FAILED;
398-
st_Locker.unlock_shared();
399378
return false;
400379
}
401380
m_FStream.write(stl_ListTorrent.data(), stl_ListTorrent.size());
@@ -408,8 +387,6 @@ bool CBTorrent_Creator::BTorrent_Creator_GetTorrent(XNETHANDLE xhToken, LPCXSTR
408387
memcpy(ptszMsgBuffer, stl_ListTorrent.data(), *pInt_MsgLen);
409388
}
410389
#endif
411-
st_Locker.unlock_shared();
412-
413390
return true;
414391
}
415392
/********************************************************************
@@ -425,28 +402,24 @@ bool CBTorrent_Creator::BTorrent_Creator_GetTorrent(XNETHANDLE xhToken, LPCXSTR
425402
意思:是否成功
426403
备注:
427404
*********************************************************************/
428-
bool CBTorrent_Creator::BTorrent_Creator_Destory(XNETHANDLE xhToken)
405+
bool CBTorrent_Creator::BTorrent_Creator_Destory(XHANDLE xhToken)
429406
{
430407
BTDload_IsErrorOccur = false;
431408

432-
st_Locker.lock();
433-
unordered_map<XNETHANDLE, BTORRENT_CREATORINFO>::iterator stl_MapIterator = stl_MapBTCreator.find(xhToken);
434-
if (stl_MapIterator != stl_MapBTCreator.end())
409+
BTORRENT_CREATORINFO* pSt_BTCreator = (BTORRENT_CREATORINFO*)xhToken;
410+
if (NULL != pSt_BTCreator)
435411
{
436-
stl_MapIterator->second.pStl_ListNode->clear();
437-
stl_MapIterator->second.pStl_ListSeeds->clear();
438-
stl_MapIterator->second.pStl_ListTracker->clear();
439-
440-
delete stl_MapIterator->second.pStl_ListNode;
441-
delete stl_MapIterator->second.pStl_ListSeeds;
442-
delete stl_MapIterator->second.pStl_ListTracker;
412+
pSt_BTCreator->pStl_ListNode->clear();
413+
pSt_BTCreator->pStl_ListSeeds->clear();
414+
pSt_BTCreator->pStl_ListTracker->clear();
443415

444-
stl_MapIterator->second.pStl_ListNode = NULL;
445-
stl_MapIterator->second.pStl_ListSeeds = NULL;
446-
stl_MapIterator->second.pStl_ListTracker = NULL;
416+
delete pSt_BTCreator->pStl_ListNode;
417+
delete pSt_BTCreator->pStl_ListSeeds;
418+
delete pSt_BTCreator->pStl_ListTracker;
447419

448-
stl_MapBTCreator.erase(stl_MapIterator);
420+
pSt_BTCreator->pStl_ListNode = NULL;
421+
pSt_BTCreator->pStl_ListSeeds = NULL;
422+
pSt_BTCreator->pStl_ListTracker = NULL;
449423
}
450-
st_Locker.unlock();
451424
return true;
452425
}

XEngine_Source/StorageModule_BTorrent/BTorrent_Creator/BTorrent_Creator.h

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -29,16 +29,13 @@ class CBTorrent_Creator
2929
CBTorrent_Creator();
3030
~CBTorrent_Creator();
3131
public:
32-
bool BTorrent_Creator_Init(XNETHANDLE* pxhToken, LPCXSTR lpszBTPath, int nPieceSize = 0);
33-
bool BTorrent_Creator_AddNode(XNETHANDLE xhToken, LPCXSTR lpszAddr, int nIndex);
34-
bool BTorrent_Creator_AddTracker(XNETHANDLE xhToken, LPCXSTR lpszAddr, int nIndex = 0);
35-
bool BTorrent_Creator_AddSeeds(XNETHANDLE xhToken, LPCXSTR lpszAddr, bool bSingle = false);
36-
bool BTorrent_Creator_SetInfo(XNETHANDLE xhToken, LPCXSTR lpszCreator, LPCXSTR lpszComment = NULL, LPCXSTR lpszCertBuffer = NULL);
37-
bool BTorrent_Creator_GetTorrent(XNETHANDLE xhToken, LPCXSTR lpszBTFile = NULL, XCHAR* ptszMsgBuffer = NULL, int* pInt_MsgLen = NULL);
38-
bool BTorrent_Creator_Destory(XNETHANDLE xhToken);
32+
XHANDLE BTorrent_Creator_Init(LPCXSTR lpszBTPath, int nPieceSize = 0);
33+
bool BTorrent_Creator_AddNode(XHANDLE xhToken, LPCXSTR lpszAddr, int nIndex);
34+
bool BTorrent_Creator_AddTracker(XHANDLE xhToken, LPCXSTR lpszAddr, int nIndex = 0);
35+
bool BTorrent_Creator_AddSeeds(XHANDLE xhToken, LPCXSTR lpszAddr, bool bSingle = false);
36+
bool BTorrent_Creator_SetInfo(XHANDLE xhToken, LPCXSTR lpszCreator, LPCXSTR lpszComment = NULL, LPCXSTR lpszCertBuffer = NULL);
37+
bool BTorrent_Creator_GetTorrent(XHANDLE xhToken, LPCXSTR lpszBTFile = NULL, XCHAR* ptszMsgBuffer = NULL, int* pInt_MsgLen = NULL);
38+
bool BTorrent_Creator_Destory(XHANDLE xhToken);
3939
protected:
4040
private:
41-
shared_mutex st_Locker;
42-
private:
43-
unordered_map<XNETHANDLE, BTORRENT_CREATORINFO> stl_MapBTCreator;
4441
};

0 commit comments

Comments
 (0)