Skip to content

Commit 3fe2a17

Browse files
committed
added:heart active for session module
1 parent 9ca6393 commit 3fe2a17

File tree

5 files changed

+56
-0
lines changed

5 files changed

+56
-0
lines changed

XEngine_Source/MQCore_SessionModule/MQCore_SessionModule.def

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ EXPORTS
99
SessionModule_Client_Delete
1010
SessionModule_Client_GetAuth
1111
SessionModule_Client_GetUser
12+
SessionModule_Client_Heart
1213

1314
SessionModule_Notify_Create
1415
SessionModule_Notify_Destory

XEngine_Source/MQCore_SessionModule/SessionModule_Client/SessionModule_Client.cpp

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -236,6 +236,42 @@ BOOL CSessionModule_Client::SessionModule_Client_GetUser(LPCTSTR lpszSessionStr,
236236
st_Locker.unlock_shared();
237237
return TRUE;
238238
}
239+
/********************************************************************
240+
函数名称:SessionModule_Client_Heart
241+
函数功能:触发一次心跳
242+
参数.一:lpszClientAddr
243+
In/Out:In
244+
类型:常量字符指针
245+
可空:N
246+
意思:输入要触发的客户端
247+
返回值
248+
类型:逻辑型
249+
意思:是否成功
250+
备注:
251+
*********************************************************************/
252+
BOOL CSessionModule_Client::SessionModule_Client_Heart(LPCTSTR lpszClientAddr)
253+
{
254+
Session_IsErrorOccur = FALSE;
255+
256+
if (NULL == lpszClientAddr)
257+
{
258+
Session_IsErrorOccur = TRUE;
259+
Session_dwErrorCode = ERROR_MQ_MODULE_SESSION_PARAMENT;
260+
return FALSE;
261+
}
262+
st_Locker.lock_shared();
263+
unordered_map<tstring, XENGINE_SESSIONINFO>::iterator stl_MapIterator = stl_MapSession.find(lpszClientAddr);
264+
if (stl_MapIterator == stl_MapSession.end())
265+
{
266+
Session_IsErrorOccur = TRUE;
267+
Session_dwErrorCode = ERROR_MQ_MODULE_SESSION_NOTFOUND;
268+
st_Locker.unlock_shared();
269+
return FALSE;
270+
}
271+
stl_MapIterator->second.nTimeStart = time(NULL);
272+
st_Locker.unlock_shared();
273+
return TRUE;
274+
}
239275
///////////////////////////////////////////////////////////////////////////////
240276
// 线程函数
241277
///////////////////////////////////////////////////////////////////////////////

XEngine_Source/MQCore_SessionModule/SessionModule_Client/SessionModule_Client.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ class CSessionModule_Client
3030
BOOL SessionModule_Client_Delete(LPCTSTR lpszClientAddr);
3131
BOOL SessionModule_Client_GetAuth(LPCTSTR lpszClientAddr, TCHAR* ptszUserName = NULL);
3232
BOOL SessionModule_Client_GetUser(LPCTSTR lpszSessionStr, TCHAR* ptszUserName = NULL);
33+
BOOL SessionModule_Client_Heart(LPCTSTR lpszClientAddr);
3334
protected:
3435
static XHTHREAD CALLBACK SessionModule_Client_Thread(LPVOID lParam);
3536
private:

XEngine_Source/MQCore_SessionModule/Session_Define.h

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,20 @@ extern "C" BOOL SessionModule_Client_GetAuth(LPCTSTR lpszClientAddr, TCHAR * pts
148148
备注:
149149
************************************************************************/
150150
extern "C" BOOL SessionModule_Client_GetUser(LPCTSTR lpszSessionStr, TCHAR* ptszUserName = NULL);
151+
/********************************************************************
152+
函数名称:SessionModule_Client_Heart
153+
函数功能:触发一次心跳
154+
参数.一:lpszClientAddr
155+
In/Out:In
156+
类型:常量字符指针
157+
可空:N
158+
意思:输入要触发的客户端
159+
返回值
160+
类型:逻辑型
161+
意思:是否成功
162+
备注:
163+
*********************************************************************/
164+
extern "C" BOOL SessionModule_Client_Heart(LPCTSTR lpszClientAddr);
151165
/************************************************************************/
152166
/* 订阅 */
153167
/************************************************************************/

XEngine_Source/MQCore_SessionModule/pch.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,10 @@ extern "C" BOOL SessionModule_Client_GetUser(LPCTSTR lpszSessionStr, TCHAR * pts
5555
{
5656
return m_SessionClient.SessionModule_Client_GetUser(lpszSessionStr, ptszUserName);
5757
}
58+
extern "C" BOOL SessionModule_Client_Heart(LPCTSTR lpszClientAddr)
59+
{
60+
return m_SessionClient.SessionModule_Client_Heart(lpszClientAddr);
61+
}
5862
/************************************************************************/
5963
/* 订阅 */
6064
/************************************************************************/

0 commit comments

Comments
 (0)