Skip to content

Commit 8d4fe15

Browse files
committed
modify:auto remove token for session module
1 parent 8f1cde9 commit 8d4fe15

File tree

4 files changed

+25
-10
lines changed

4 files changed

+25
-10
lines changed

XEngine_Module/XEngine_Token/Session_Define.h

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,17 @@ extern "C" XLONG Session_GetLastError(int *pInt_ErrorCode = NULL);
3030
类型:整数型
3131
可空:N
3232
意思:超时时间,单位秒,0不超时,永远存在
33-
参数.二:fpCall_TokenEvent
33+
参数.二:bRemove
34+
In/Out:In
35+
类型:逻辑型
36+
可空:N
37+
意思:是否允许自动删除
38+
参数.三:fpCall_TokenEvent
3439
In/Out:In/Out
3540
类型:回调函数
3641
可空:N
3742
意思:TOKEN登录的客户端连接超时回调
38-
参数.:lParam
43+
参数.:lParam
3944
In/Out:In/Out
4045
类型:无类型指针
4146
可空:Y
@@ -45,7 +50,7 @@ extern "C" XLONG Session_GetLastError(int *pInt_ErrorCode = NULL);
4550
意思:是否初始化成功
4651
备注:
4752
*********************************************************************/
48-
extern "C" bool Session_Token_Init(int nTimeout, CALLBACK_XENGIEN_MODULE_TOKEN_EVENTS fpCall_TokenEvent, XPVOID lParam = NULL);
53+
extern "C" bool Session_Token_Init(int nTimeout, bool bRemove, CALLBACK_XENGIEN_MODULE_TOKEN_EVENTS fpCall_TokenEvent, XPVOID lParam = NULL);
4954
/********************************************************************
5055
函数名称:Session_Token_Destroy
5156
函数功能:销毁服务

XEngine_Module/XEngine_Token/Session_Token/Session_Token.cpp

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,12 +28,17 @@ CSession_Token::~CSession_Token()
2828
类型:整数型
2929
可空:N
3030
意思:超时时间,单位秒,0不超时,永远存在
31-
参数.二:fpCall_TokenEvent
31+
参数.二:bRemove
32+
In/Out:In
33+
类型:逻辑型
34+
可空:N
35+
意思:是否允许自动删除
36+
参数.三:fpCall_TokenEvent
3237
In/Out:In/Out
3338
类型:回调函数
3439
可空:N
3540
意思:TOKEN登录的客户端连接超时回调
36-
参数.:lParam
41+
参数.:lParam
3742
In/Out:In/Out
3843
类型:无类型指针
3944
可空:Y
@@ -43,7 +48,7 @@ CSession_Token::~CSession_Token()
4348
意思:是否初始化成功
4449
备注:
4550
*********************************************************************/
46-
bool CSession_Token::Session_Token_Init(int nTimeout, CALLBACK_XENGIEN_MODULE_TOKEN_EVENTS fpCall_TokenEvent, XPVOID lParam /* = NULL */)
51+
bool CSession_Token::Session_Token_Init(int nTimeout, bool bRemove, CALLBACK_XENGIEN_MODULE_TOKEN_EVENTS fpCall_TokenEvent, XPVOID lParam /* = NULL */)
4752
{
4853
Session_IsErrorOccur = false;
4954

@@ -55,6 +60,7 @@ bool CSession_Token::Session_Token_Init(int nTimeout, CALLBACK_XENGIEN_MODULE_TO
5560
}
5661
m_nTimeout = nTimeout;
5762
m_lParam = lParam;
63+
m_bRemove = bRemove;
5864
lpCall_TokenEvents = fpCall_TokenEvent;
5965

6066
bIsRun = true;
@@ -864,7 +870,10 @@ XHTHREAD CSession_Token::Session_Token_Thread(XPVOID lParam)
864870
std::list<TOKENSESSION_INFOCLIENT>::iterator stl_ListIterator = stl_ListNotify.begin();
865871
for (; stl_ListIterator != stl_ListNotify.end(); stl_ListIterator++)
866872
{
867-
::Session_Token_DeleteStr(stl_ListIterator->tszTokenStr);
873+
if (pClass_This->m_bRemove)
874+
{
875+
::Session_Token_DeleteStr(stl_ListIterator->tszTokenStr);
876+
}
868877
pClass_This->lpCall_TokenEvents(stl_ListIterator->tszTokenStr, stl_ListIterator->nTimeout, stl_ListIterator->nRenewalTime, &stl_ListIterator->st_LibTimer, &stl_ListIterator->st_UserInfo, pClass_This->m_lParam);
869878
}
870879
stl_ListNotify.clear(); //清理元素

XEngine_Module/XEngine_Token/Session_Token/Session_Token.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ class CSession_Token
2626
CSession_Token();
2727
~CSession_Token();
2828
public:
29-
bool Session_Token_Init(int nTimeout, CALLBACK_XENGIEN_MODULE_TOKEN_EVENTS fpCall_TokenEvent, XPVOID lParam = NULL);
29+
bool Session_Token_Init(int nTimeout, bool bRemove, CALLBACK_XENGIEN_MODULE_TOKEN_EVENTS fpCall_TokenEvent, XPVOID lParam = NULL);
3030
bool Session_Token_Destroy();
3131
bool Session_Token_Create(XNETHANDLE *pxhToken, XENGINE_PROTOCOL_USERINFO* pSt_UserInfo = NULL, int nTimeout = -1);
3232
bool Session_Token_Insert(XNETHANDLE xhToken, XENGINE_PROTOCOL_USERINFO* pSt_UserInfo = NULL, int nTimeout = -1);
@@ -54,6 +54,7 @@ class CSession_Token
5454
private:
5555
int m_nTimeout = 0;
5656
bool bIsRun = false;
57+
bool m_bRemove = false;
5758
std::unique_ptr<std::thread> pSTDThread;
5859
private:
5960
XPVOID m_lParam = NULL;

XEngine_Module/XEngine_Token/pch.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,9 @@ extern "C" XLONG Session_GetLastError(int* pInt_ErrorCode)
3131
/************************************************************************/
3232
/* TOKEN会话导出函数 */
3333
/************************************************************************/
34-
extern "C" bool Session_Token_Init(int nTimeout, CALLBACK_XENGIEN_MODULE_TOKEN_EVENTS fpCall_TokenEvent, XPVOID lParam)
34+
extern "C" bool Session_Token_Init(int nTimeout, bool bRemove, CALLBACK_XENGIEN_MODULE_TOKEN_EVENTS fpCall_TokenEvent, XPVOID lParam)
3535
{
36-
return m_SessionToken.Session_Token_Init(nTimeout, fpCall_TokenEvent, lParam);
36+
return m_SessionToken.Session_Token_Init(nTimeout, bRemove, fpCall_TokenEvent, lParam);
3737
}
3838
extern "C" bool Session_Token_Destroy()
3939
{

0 commit comments

Comments
 (0)