Skip to content

Commit ac6198e

Browse files
committed
modify:get time left and time out for session module
1 parent 269830b commit ac6198e

File tree

10 files changed

+127
-16
lines changed

10 files changed

+127
-16
lines changed

README.en.md

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ This repository is the repository for XEngine's open source modules and examples
77

88
Development language:c c++
99
Development tools:vs2022
10-
support systems:linux,macos,windows
10+
support systems:linux,macos,windows,android,ios
1111

1212
## Dir Struct
1313

@@ -69,6 +69,22 @@ Linux use Makefile to complie,terminal exection,Requires mac 13 and above
6969

7070
make PLATFORM=mac
7171

72+
#### Android
73+
74+
use Makefile to complie
75+
76+
##### Compile Command
77+
78+
make PLATFORM=android
79+
80+
#### Android
81+
82+
use Makefile to complie
83+
84+
##### Compile Command
85+
86+
make PLATFORM=ios
87+
7288
## Use
7389

7490
1. Switch to the MASTER branch

README.md

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
开发语言:C/C++
1010
开发工具:vs2022
11-
支持系统:linux,macos,windows
11+
支持系统:linux,macos,windows,android,ios
1212

1313
## 目录结构
1414

@@ -69,6 +69,20 @@ make 编译
6969

7070
make PLATFORM=mac
7171

72+
#### Adnroid
73+
使用makefile编译
74+
75+
###### 编译命令
76+
77+
make PLATFORM=android
78+
79+
#### IOS
80+
使用makefile编译
81+
82+
###### 编译命令
83+
84+
make PLATFORM=ios
85+
7286
## 使用说明
7387

7488
1. 切换到MASTER分支

XEngine_Module/XEngine_AIApi/Makefile

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@ else
1919
else ifeq ($(PLATFORM), android)
2020
FLAGS = -c
2121
DEBUG = -g -D _DEBUG
22+
else ifeq ($(PLATFORM), ios)
23+
FLAGS = -c
24+
DEBUG = -g -D _DEBUG
2225
else
2326
FLAGS = -c -lc_p
2427
DEBUG = -g -pg -D _DEBUG
@@ -57,6 +60,14 @@ else ifeq ($(PLATFORM), android)
5760
LOADBIN = -Wl,-rpath=./,--disable-new-dtags
5861
SDKPATH = $(HOME)/android-ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++
5962
CC = $(SDKPATH) -Wall -fPIC -std=c++20 -target aarch64-linux-android30
63+
else ifeq ($(PLATFORM), ios)
64+
PLATVER = -D __IOS__
65+
FILEEXT = dylib
66+
LIBFLAG = -dynamiclib
67+
LOADHDR += -I $(HOME)/XEngine_IOS_Arm64
68+
LOADSO += -L $(HOME)/XEngine_IOS_Arm64/XEngine_IOS/XEngine_BaseLib -L $(HOME)/XEngine_IOS_Arm64/XEngine_IOS/XEngine_Core -L $(HOME)/XEngine_IOS_Arm64/XEngine_IOS/XEngine_Client
69+
SDKPATH = /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk
70+
CC = g++ -Wall -fPIC -std=c++20 -arch arm64 -Wno-deprecated-declarations -isysroot ${SDKPATH} -miphoneos-version-min=16.0
6071
endif
6172

6273
all:$(OBJECTS)

XEngine_Module/XEngine_InfoReport/Makefile

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@ else
1919
else ifeq ($(PLATFORM), android)
2020
FLAGS = -c
2121
DEBUG = -g -D _DEBUG
22+
else ifeq ($(PLATFORM), ios)
23+
FLAGS = -c
24+
DEBUG = -g -D _DEBUG
2225
else
2326
FLAGS = -c -lc_p
2427
DEBUG = -g -pg -D _DEBUG
@@ -57,6 +60,14 @@ else ifeq ($(PLATFORM), android)
5760
LOADBIN = -Wl,-rpath=./,--disable-new-dtags
5861
SDKPATH = $(HOME)/android-ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++
5962
CC = $(SDKPATH) -Wall -fPIC -std=c++20 -target aarch64-linux-android30
63+
else ifeq ($(PLATFORM), ios)
64+
PLATVER = -D __IOS__
65+
FILEEXT = dylib
66+
LIBFLAG = -dynamiclib
67+
LOADHDR += -I $(HOME)/XEngine_IOS_Arm64
68+
LOADSO += -L $(HOME)/XEngine_IOS_Arm64/XEngine_IOS/XEngine_BaseLib -L $(HOME)/XEngine_IOS_Arm64/XEngine_IOS/XEngine_SystemSdk -L $(HOME)/XEngine_IOS_Arm64/XEngine_IOS/XEngine_NetHelp -L $(HOME)/XEngine_IOS_Arm64/XEngine_IOS/XEngine_Client
69+
SDKPATH = /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk
70+
CC = g++ -Wall -fPIC -std=c++20 -arch arm64 -Wno-deprecated-declarations -isysroot ${SDKPATH} -miphoneos-version-min=16.0
6071
endif
6172

6273
all:$(OBJECTS)

XEngine_Module/XEngine_Token/Session_Define.h

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -182,17 +182,22 @@ extern "C" bool Session_Token_GetTimeInfo(XNETHANDLE xhToken, XENGINE_LIBTIME* p
182182
类型:句柄
183183
可空:N
184184
意思:要操作的客户端
185-
参数.二:pInt_Timeout
185+
参数.二:pInt_TimeLogin
186186
In/Out:Out
187187
类型:整数型指针
188188
可空:N
189-
意思:输出超时时间
189+
意思:输出在线时间
190+
参数.三:pInt_Timeout
191+
In/Out:Out
192+
类型:整数型指针
193+
可空:N
194+
意思:输出剩余超时时间
190195
返回值
191196
类型:逻辑型
192197
意思:是否成功
193198
备注:
194199
*********************************************************************/
195-
extern "C" bool Session_Token_GetTimeout(XNETHANDLE xhToken, int* pInt_Timeout);
200+
extern "C" bool Session_Token_GetTimeout(XNETHANDLE xhToken, __int64x* pInt_TimeLogin = NULL, __int64x* pInt_Timeout = NULL);
196201
/********************************************************************
197202
函数名称:Session_Token_GetTimeRenewal
198203
函数功能:获取续期次数

XEngine_Module/XEngine_Token/Session_Token/Session_Token.cpp

Lines changed: 44 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ bool CSession_Token::Session_Token_Destroy()
110110
In/Out:In
111111
类型:整数型
112112
可空:Y
113-
意思:单独指定超时时间,-1 不启用
113+
意思:单独指定超时时间,-1 不启用,0 不超时,> 0 超时秒
114114
返回值
115115
类型:逻辑型
116116
意思:是否允许登陆
@@ -154,7 +154,7 @@ bool CSession_Token::Session_Token_Create(XNETHANDLE *pxhToken, XENGINE_PROTOCOL
154154
In/Out:In
155155
类型:整数型
156156
可空:Y
157-
意思:单独指定超时时间,-1 不启用
157+
意思:单独指定超时时间,-1 不启用,0 不超时,> 0 超时秒
158158
返回值
159159
类型:逻辑型
160160
意思:是否允许登陆
@@ -342,17 +342,22 @@ bool CSession_Token::Session_Token_GetTimeInfo(XNETHANDLE xhToken, XENGINE_LIBTI
342342
类型:句柄
343343
可空:N
344344
意思:要操作的客户端
345-
参数.二:pInt_Timeout
345+
参数.二:pInt_TimeLogin
346346
In/Out:Out
347347
类型:整数型指针
348348
可空:N
349-
意思:输出超时时间
349+
意思:输出在线时间
350+
参数.三:pInt_Timeout
351+
In/Out:Out
352+
类型:整数型指针
353+
可空:N
354+
意思:输出剩余超时时间
350355
返回值
351356
类型:逻辑型
352357
意思:是否成功
353358
备注:
354359
*********************************************************************/
355-
bool CSession_Token::Session_Token_GetTimeout(XNETHANDLE xhToken, int* pInt_Timeout)
360+
bool CSession_Token::Session_Token_GetTimeout(XNETHANDLE xhToken, __int64x* pInt_TimeLogin, __int64x* pInt_Timeout)
356361
{
357362
Session_IsErrorOccur = false;
358363

@@ -367,10 +372,41 @@ bool CSession_Token::Session_Token_GetTimeout(XNETHANDLE xhToken, int* pInt_Time
367372
}
368373
XENGINE_LIBTIME st_LibTimer = {};
369374
BaseLib_Time_GetSysTime(&st_LibTimer); //获取现在的系统时间
370-
__int64x nOnlineSpan = 0; //在线时间
371375
//用户登录了多少秒
372-
BaseLib_TimeSpan_GetForStu(&stl_MapIterator->second.st_OutTimer, &st_LibTimer, &nOnlineSpan, ENUM_XENGINE_BASELIB_TIME_TYPE_SECOND);
373-
*pInt_Timeout = (int)nOnlineSpan;
376+
if (NULL != pInt_TimeLogin)
377+
{
378+
BaseLib_TimeSpan_GetForStu(&stl_MapIterator->second.st_OutTimer, &st_LibTimer, pInt_TimeLogin, ENUM_XENGINE_BASELIB_TIME_TYPE_SECOND);
379+
}
380+
//用户超时时间
381+
time_t nTimeEnd = 0;
382+
time_t nTimeStart = 0;
383+
BaseLib_Time_StuTimeToTTime(&stl_MapIterator->second.st_OutTimer, &nTimeStart);
384+
if (NULL != pInt_Timeout)
385+
{
386+
if (-1 == stl_MapIterator->second.nTimeout)
387+
{
388+
//全局时间
389+
if (m_nTimeout > 0)
390+
{
391+
BaseLib_Time_StuTimeToTTime(&st_LibTimer, &nTimeEnd);
392+
nTimeEnd += m_nTimeout;
393+
}
394+
else
395+
{
396+
*pInt_Timeout = 0; //不超时
397+
}
398+
}
399+
else if (0 == stl_MapIterator->second.nTimeout)
400+
{
401+
*pInt_Timeout = 0; //不超时
402+
}
403+
else
404+
{
405+
BaseLib_Time_StuTimeToTTime(&st_LibTimer, &nTimeEnd);
406+
nTimeEnd += stl_MapIterator->second.nTimeout;
407+
}
408+
BaseLib_TimeSpan_GetForTime(nTimeStart, nTimeEnd, pInt_Timeout, ENUM_XENGINE_BASELIB_TIME_TYPE_SECOND);
409+
}
374410
st_Locker.unlock_shared();
375411
return true;
376412
}

XEngine_Module/XEngine_Token/Session_Token/Session_Token.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ class CSession_Token
3434
bool Session_Token_UPDate(XNETHANDLE xhToken);
3535
bool Session_Token_Get(XNETHANDLE xhToken, XENGINE_PROTOCOL_USERINFO* pSt_UserInfo = NULL);
3636
bool Session_Token_GetTimeInfo(XNETHANDLE xhToken, XENGINE_LIBTIME* pSt_LoginTime = NULL, XENGINE_LIBTIME* pSt_UPTime = NULL);
37-
bool Session_Token_GetTimeout(XNETHANDLE xhToken, int* pInt_Timeout);
37+
bool Session_Token_GetTimeout(XNETHANDLE xhToken, __int64x* pInt_TimeLogin = NULL, __int64x* pInt_Timeout = NULL);
3838
bool Session_Token_GetTimeRenewal(XNETHANDLE xhToken, int* pInt_RenewalTime);
3939
bool Session_Token_GetUser(LPCXSTR lpszUser, LPCXSTR lpszPass, XNETHANDLE* pxhToken);
4040
bool Session_Token_GetList(XNETHANDLE*** pppxhToken, int* pInt_ListCount);

XEngine_Module/XEngine_Token/pch.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,9 +63,9 @@ extern "C" bool Session_Token_GetTimeInfo(XNETHANDLE xhToken, XENGINE_LIBTIME* p
6363
{
6464
return m_SessionToken.Session_Token_GetTimeInfo(xhToken, pSt_LoginTime, pSt_UPTime);
6565
}
66-
extern "C" bool Session_Token_GetTimeout(XNETHANDLE xhToken, int* pInt_Timeout)
66+
extern "C" bool Session_Token_GetTimeout(XNETHANDLE xhToken, __int64x* pInt_TimeLogin, __int64x* pInt_Timeout)
6767
{
68-
return m_SessionToken.Session_Token_GetTimeout(xhToken, pInt_Timeout);
68+
return m_SessionToken.Session_Token_GetTimeout(xhToken, pInt_TimeLogin, pInt_Timeout);
6969
}
7070
extern "C" bool Session_Token_GetTimeRenewal(XNETHANDLE xhToken, int* pInt_RenewalTime)
7171
{

XEngine_Module/jsoncpp/Makefile

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@ else
1919
else ifeq ($(PLATFORM), android)
2020
FLAGS = -c
2121
DEBUG = -g -D _DEBUG
22+
else ifeq ($(PLATFORM), ios)
23+
FLAGS = -c
24+
DEBUG = -g -D _DEBUG
2225
else
2326
FLAGS = -c -lc_p
2427
DEBUG = -g -pg -D _DEBUG
@@ -55,6 +58,12 @@ else ifeq ($(PLATFORM), android)
5558
LOADBIN = -Wl,-rpath=./,--disable-new-dtags
5659
SDKPATH = $(HOME)/android-ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++
5760
CC = $(SDKPATH) -Wall -fPIC -std=c++20 -target aarch64-linux-android30
61+
else ifeq ($(PLATFORM), ios)
62+
PLATVER = -D __IOS__
63+
FILEEXT = dylib
64+
LIBFLAG = -dynamiclib
65+
SDKPATH = /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk
66+
CC = g++ -Wall -fPIC -std=c++20 -arch arm64 -Wno-deprecated-declarations -isysroot ${SDKPATH} -miphoneos-version-min=16.0
5867
endif
5968

6069
all:$(OBJECTS)

XEngine_Module/tinyxml2/Makefile

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@ else
1919
else ifeq ($(PLATFORM), android)
2020
FLAGS = -c
2121
DEBUG = -g -D _DEBUG
22+
else ifeq ($(PLATFORM), ios)
23+
FLAGS = -c
24+
DEBUG = -g -D _DEBUG
2225
else
2326
FLAGS = -c -lc_p
2427
DEBUG = -g -pg -D _DEBUG
@@ -55,6 +58,12 @@ else ifeq ($(PLATFORM), android)
5558
LOADBIN = -Wl,-rpath=./,--disable-new-dtags
5659
SDKPATH = $(HOME)/android-ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++
5760
CC = $(SDKPATH) -Wall -fPIC -std=c++20 -target aarch64-linux-android30
61+
else ifeq ($(PLATFORM), ios)
62+
PLATVER = -D __IOS__
63+
FILEEXT = dylib
64+
LIBFLAG = -dynamiclib
65+
SDKPATH = /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk
66+
CC = g++ -Wall -fPIC -std=c++20 -arch arm64 -Wno-deprecated-declarations -isysroot ${SDKPATH} -miphoneos-version-min=16.0
5867
endif
5968

6069
all:$(OBJECTS)

0 commit comments

Comments
 (0)