Skip to content

Commit d026b71

Browse files
committed
added:create and insert token and dynamic and dynamic range set for token module
1 parent b45977a commit d026b71

File tree

8 files changed

+316
-46
lines changed

8 files changed

+316
-46
lines changed

XEngine_Module/XEngine_Token/Session_Define.h

Lines changed: 93 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,30 @@ extern "C" bool Session_Token_Init(int nTimeout, CALLBACK_XENGIEN_MODULE_TOKEN_E
5656
*********************************************************************/
5757
extern "C" bool Session_Token_Destroy();
5858
/********************************************************************
59+
函数名称:Session_Token_Create
60+
函数功能:创建一个TOKEN到会话管理器
61+
参数.一:pxhToken
62+
In/Out:Out
63+
类型:句柄
64+
可空:N
65+
意思:创建成功的TOKEN
66+
参数.二:pSt_UserTable
67+
In/Out:In
68+
类型:数据结构指针
69+
可空:Y
70+
意思:用户信息表
71+
参数.三:nTimeout
72+
In/Out:In
73+
类型:整数型
74+
可空:Y
75+
意思:单独指定超时时间,-1 不启用
76+
返回值
77+
类型:逻辑型
78+
意思:是否允许登陆
79+
备注:
80+
*********************************************************************/
81+
extern "C" bool Session_Token_Create(XNETHANDLE* pxhToken, XENGINE_PROTOCOL_USERINFO* pSt_UserInfo = NULL, int nTimeout = -1);
82+
/********************************************************************
5983
函数名称:Session_Authorize_Insert
6084
函数功能:插入一个TOKEN到会话管理器
6185
参数.一:xhToken
@@ -170,6 +194,25 @@ extern "C" bool Session_Token_GetTimeInfo(XNETHANDLE xhToken, XENGINE_LIBTIME* p
170194
*********************************************************************/
171195
extern "C" bool Session_Token_GetTimeout(XNETHANDLE xhToken, int* pInt_Timeout);
172196
/********************************************************************
197+
函数名称:Session_Token_GetTimeRenewal
198+
函数功能:获取续期次数
199+
参数.一:xhToken
200+
In/Out:In
201+
类型:句柄
202+
可空:N
203+
意思:输入要操作的TOKEN
204+
参数.二:pInt_RenewalTime
205+
In/Out:Out
206+
类型:整数型指针
207+
可空:N
208+
意思:输出续期的次数
209+
返回值
210+
类型:逻辑型
211+
意思:是否成功
212+
备注:
213+
*********************************************************************/
214+
extern "C" bool Session_Token_GetTimeRenewal(XNETHANDLE xhToken, int* pInt_RenewalTime);
215+
/********************************************************************
173216
函数名称:Session_Token_GetUser
174217
函数功能:获取用户是否存在
175218
参数.一:lpszUser
@@ -194,24 +237,24 @@ extern "C" bool Session_Token_GetTimeout(XNETHANDLE xhToken, int* pInt_Timeout);
194237
*********************************************************************/
195238
extern "C" bool Session_Token_GetUser(LPCXSTR lpszUser, LPCXSTR lpszPass, XNETHANDLE* pxhToken);
196239
/********************************************************************
197-
函数名称:Session_Token_RenewalTime
198-
函数功能:获取续期次数
199-
参数.一:xhToken
200-
In/Out:In
201-
类型:句柄
240+
函数名称:Session_Token_GetList
241+
函数功能:获取所有管理的TOKEN
242+
参数.一:pppxhToken
243+
In/Out:Out
244+
类型:三级指针
202245
可空:N
203-
意思:输入要操作的TOKEN
204-
参数.二:pInt_RenewalTime
246+
意思:输出获取到的TOKEN列表
247+
参数.二:pInt_ListCount
205248
In/Out:Out
206249
类型:整数型指针
207250
可空:N
208-
意思:输出续期的次数
251+
意思:输出获取到的列表个数
209252
返回值
210253
类型:逻辑型
211254
意思:是否成功
212255
备注:
213256
*********************************************************************/
214-
extern "C" bool Session_Token_RenewalTime(XNETHANDLE xhToken, int* pInt_RenewalTime);
257+
extern "C" bool Session_Token_GetList(XNETHANDLE*** pppxhToken, int* pInt_ListCount);
215258
/************************************************************************/
216259
/* 动态码导出定义 */
217260
/************************************************************************/
@@ -245,18 +288,57 @@ extern "C" bool Session_Dynamic_Destory();
245288
In/Out:Out
246289
类型:句柄
247290
可空:N
248-
意思:输出动态码绑定的句柄
291+
意思:输出创建的TOKEN
292+
参数.二:pInt_DynamicCode
293+
In/Out:Out
294+
类型:整数型指针
295+
可空:N
296+
意思:输出动态码
297+
参数.三:nDynamicStart
298+
In/Out:In
299+
类型:整数型
300+
可空:Y
301+
意思:动态码起始范围,默认5位
302+
参数.四:nDynamicEnd
303+
In/Out:In
304+
类型:整数型
305+
可空:Y
306+
意思:动态码结束范围
307+
返回值
308+
类型:逻辑型
309+
意思:是否成功
310+
备注:
311+
*********************************************************************/
312+
extern "C" bool Session_Dynamic_Create(XNETHANDLE* pxhToken, XSHOT* pInt_DynamicCode, __int64x nDynamicStart = 10000, __int64x nDynamicEnd = 65535);
313+
/********************************************************************
314+
函数名称:Session_Dynamic_Insert
315+
函数功能:插入一个TOKNE并且生成对应的动态码
316+
参数.一:xhToken
317+
In/Out:In
318+
类型:句柄
319+
可空:N
320+
意思:输入自己创建的TOKEN
249321
参数.二:pInt_DynamicCode
250322
In/Out:Out
251323
类型:整数型
252324
可空:N
253325
意思:输出动态码
326+
参数.三:nDynamicStart
327+
In/Out:In
328+
类型:整数型
329+
可空:Y
330+
意思:动态码起始范围,默认5位
331+
参数.四:nDynamicEnd
332+
In/Out:In
333+
类型:整数型
334+
可空:Y
335+
意思:动态码结束范围
254336
返回值
255337
类型:逻辑型
256338
意思:是否成功
257339
备注:
258340
*********************************************************************/
259-
extern "C" bool Session_Dynamic_Create(XNETHANDLE* pxhToken, XSHOT* pInt_DynamicCode);
341+
extern "C" bool Session_Dynamic_Insert(XNETHANDLE xhToken, XSHOT* pInt_DynamicCode, __int64x nDynamicStart = 10000, __int64x nDynamicEnd = 65535);
260342
/********************************************************************
261343
函数名称:Session_Dynamic_Delete
262344
函数功能:主动删除一个动态码

XEngine_Module/XEngine_Token/Session_Dynamic/Session_Dynamic.cpp

Lines changed: 76 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -78,18 +78,28 @@ bool CSession_Dynamic::Session_Dynamic_Destory()
7878
In/Out:Out
7979
类型:句柄
8080
可空:N
81-
意思:输出动态码绑定的句柄
81+
意思:输出创建的TOKEN
8282
参数.二:pInt_DynamicCode
8383
In/Out:Out
84-
类型:整数型
84+
类型:整数型指针
8585
可空:N
8686
意思:输出动态码
87+
参数.三:nDynamicStart
88+
In/Out:In
89+
类型:整数型
90+
可空:Y
91+
意思:动态码起始范围,默认5位
92+
参数.四:nDynamicEnd
93+
In/Out:In
94+
类型:整数型
95+
可空:Y
96+
意思:动态码结束范围
8797
返回值
8898
类型:逻辑型
8999
意思:是否成功
90100
备注:
91101
*********************************************************************/
92-
bool CSession_Dynamic::Session_Dynamic_Create(XNETHANDLE* pxhToken, XSHOT* pInt_DynamicCode)
102+
bool CSession_Dynamic::Session_Dynamic_Create(XNETHANDLE* pxhToken, XSHOT* pInt_DynamicCode, __int64x nDynamicStart /* = 10000 */, __int64x nDynamicEnd /* = 65535 */)
93103
{
94104
Session_IsErrorOccur = false;
95105

@@ -103,7 +113,7 @@ bool CSession_Dynamic::Session_Dynamic_Create(XNETHANDLE* pxhToken, XSHOT* pInt_
103113

104114
st_DynamicCode.nTimeStart = time(NULL);
105115
BaseLib_Handle_Create(&st_DynamicCode.xhToken);
106-
BaseLib_Handle_Create((XNETHANDLE*)&st_DynamicCode.nDynamicCode, 10001, 65535);
116+
BaseLib_Handle_Create((XNETHANDLE*)&st_DynamicCode.nDynamicCode, nDynamicStart, nDynamicEnd);
107117

108118
*pxhToken = st_DynamicCode.xhToken;
109119
*pInt_DynamicCode = st_DynamicCode.nDynamicCode;
@@ -113,6 +123,68 @@ bool CSession_Dynamic::Session_Dynamic_Create(XNETHANDLE* pxhToken, XSHOT* pInt_
113123
return true;
114124
}
115125
/********************************************************************
126+
函数名称:Session_Dynamic_Insert
127+
函数功能:插入一个TOKNE并且生成对应的动态码
128+
参数.一:xhToken
129+
In/Out:In
130+
类型:句柄
131+
可空:N
132+
意思:输入自己创建的TOKEN
133+
参数.二:pInt_DynamicCode
134+
In/Out:Out
135+
类型:整数型
136+
可空:N
137+
意思:输出动态码
138+
参数.三:nDynamicStart
139+
In/Out:In
140+
类型:整数型
141+
可空:Y
142+
意思:动态码起始范围,默认5位
143+
参数.四:nDynamicEnd
144+
In/Out:In
145+
类型:整数型
146+
可空:Y
147+
意思:动态码结束范围
148+
返回值
149+
类型:逻辑型
150+
意思:是否成功
151+
备注:
152+
*********************************************************************/
153+
bool CSession_Dynamic::Session_Dynamic_Insert(XNETHANDLE xhToken, XSHOT* pInt_DynamicCode, __int64x nDynamicStart /* = 10000 */, __int64x nDynamicEnd /* = 65535 */)
154+
{
155+
Session_IsErrorOccur = false;
156+
157+
if (NULL == pInt_DynamicCode)
158+
{
159+
Session_IsErrorOccur = true;
160+
Session_dwErrorCode = ERROR_XENGINE_MODULE_SESSION_DYNAMIC_PARAMENT;
161+
return false;
162+
}
163+
DYANMICSESSION_INFOCLIENT st_DynamicCode = {};
164+
165+
st_DynamicCode.nTimeStart = time(NULL);
166+
st_DynamicCode.xhToken = xhToken;
167+
168+
st_Locker.lock_shared();
169+
auto stl_MapIterator = stl_MapDynamicCode.find(st_DynamicCode.xhToken);
170+
if (stl_MapIterator != stl_MapDynamicCode.end())
171+
{
172+
Session_IsErrorOccur = true;
173+
Session_dwErrorCode = ERROR_XENGINE_MODULE_SESSION_DYNAMIC_EXIST;
174+
st_Locker.unlock_shared();
175+
return false;
176+
}
177+
st_Locker.unlock_shared();
178+
179+
BaseLib_Handle_Create((XNETHANDLE*)&st_DynamicCode.nDynamicCode, nDynamicStart, nDynamicEnd);
180+
181+
*pInt_DynamicCode = st_DynamicCode.nDynamicCode;
182+
st_Locker.lock();
183+
stl_MapDynamicCode.insert(std::make_pair(xhToken, st_DynamicCode));
184+
st_Locker.unlock();
185+
return true;
186+
}
187+
/********************************************************************
116188
函数名称:Session_Dynamic_Delete
117189
函数功能:主动删除一个动态码
118190
参数.一:xhToken

XEngine_Module/XEngine_Token/Session_Dynamic/Session_Dynamic.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,8 @@ class CSession_Dynamic
2525
public:
2626
bool Session_Dynamic_Init(int nSecond);
2727
bool Session_Dynamic_Destory();
28-
bool Session_Dynamic_Create(XNETHANDLE* pxhToken, XSHOT* pInt_DynamicCode);
28+
bool Session_Dynamic_Create(XNETHANDLE* pxhToken, XSHOT* pInt_DynamicCode, __int64x nDynamicStart = 10000, __int64x nDynamicEnd = 65535);
29+
bool Session_Dynamic_Insert(XNETHANDLE xhToken, XSHOT* pInt_DynamicCode, __int64x nDynamicStart = 10000, __int64x nDynamicEnd = 65535);
2930
bool Session_Dynamic_Delete(XNETHANDLE xhToken);
3031
bool Session_Dynamic_Get(XNETHANDLE xhToken, int* pInt_DynamicCode);
3132
protected:

XEngine_Module/XEngine_Token/Session_Error.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,11 @@
1616
#define ERROR_XENGINE_MODULE_SESSION_TOKEN_PARAMENT 0x01B0001 //参数错误,无法继续
1717
#define ERROR_XENGINE_MODULE_SESSION_TOKEN_THREAD 0x0020001 //创建线程失败
1818
#define ERROR_XENGINE_MODULE_SESSION_TOKEN_NOTFOUND 0x0020002 //没有找到客户端
19+
#define ERROR_XENGINE_MODULE_SESSION_TOKEN_EXIST 0x0020003 //没有找到客户端
1920
/************************************************************************/
2021
/* TOKEN会话错误 */
2122
/************************************************************************/
2223
#define ERROR_XENGINE_MODULE_SESSION_DYNAMIC_THREAD 0x01B1001 //创建线程失败
2324
#define ERROR_XENGINE_MODULE_SESSION_DYNAMIC_PARAMENT 0x01B1002 //参数错误
24-
#define ERROR_XENGINE_MODULE_SESSION_DYNAMIC_NOTFOUND 0x01B1003 //没有找到
25+
#define ERROR_XENGINE_MODULE_SESSION_DYNAMIC_NOTFOUND 0x01B1003 //没有找到
26+
#define ERROR_XENGINE_MODULE_SESSION_DYNAMIC_EXIST 0x01B1004 //TOKEN已存在

0 commit comments

Comments
 (0)