Skip to content

Commit 2ed1be6

Browse files
committed
added:action for session module
1 parent 0bf8956 commit 2ed1be6

File tree

9 files changed

+317
-5
lines changed

9 files changed

+317
-5
lines changed

XEngine_Source/StorageModule_Session/Makefile

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ LOADHDR = -I ./
1010
LOADSO =
1111
LIB = -lXEngine_BaseLib
1212
LIBEX =
13-
OBJECTS = Session_DLStroage.o Session_UPStroage.o Session_User.o pch.o
13+
OBJECTS = Session_DLStroage.o Session_UPStroage.o Session_User.o Session_Action.o pch.o
1414

1515
ifeq ($(RELEASE),1)
1616
FLAGS = -c
@@ -58,7 +58,9 @@ Session_UPStroage.o:./Session_Stroage/Session_UPStroage.cpp
5858
$(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./Session_Stroage/Session_UPStroage.cpp
5959
Session_User.o:./Session_User/Session_User.cpp
6060
$(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./Session_User/Session_User.cpp
61-
61+
Session_Action.o:./Session_Action/Session_Action.cpp
62+
$(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./Session_Action/Session_Action.cpp
63+
6264
pch.o:./pch.cpp
6365
$(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./pch.cpp
6466

Lines changed: 162 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,162 @@
1+
#include "pch.h"
2+
#include "Session_Action.h"
3+
/********************************************************************
4+
// Created: 2024/05/10 14:57:36
5+
// File Name: D:\XEngine_Storage\XEngine_Source\StorageModule_Session\Session_Action\Session_Action.cpp
6+
// File Path: D:\XEngine_Storage\XEngine_Source\StorageModule_Session\Session_Action
7+
// File Base: Session_Action
8+
// File Ext: cpp
9+
// Project: XEngine(网络通信引擎)
10+
// Author: qyt
11+
// Purpose: 转录动作会话类
12+
// History:
13+
*********************************************************************/
14+
CSession_Action::CSession_Action()
15+
{
16+
}
17+
CSession_Action::~CSession_Action()
18+
{
19+
}
20+
//////////////////////////////////////////////////////////////////////////
21+
// 公有函数
22+
//////////////////////////////////////////////////////////////////////////
23+
/********************************************************************
24+
函数名称:Session_Action_Insert
25+
函数功能:插入一个会话到动作管理器
26+
参数.一:xhToken
27+
In/Out:In
28+
类型:句柄
29+
可空:N
30+
意思:输入要插入的句柄
31+
参数.二:xhAction
32+
In/Out:In
33+
类型:句柄
34+
可空:N
35+
意思:输入下载器句柄
36+
参数.三:pSt_ActionInfo
37+
In/Out:In
38+
类型:数据结构指针
39+
可空:N
40+
意思:输入插入的信息
41+
返回值
42+
类型:逻辑型
43+
意思:是否成功
44+
备注:
45+
*********************************************************************/
46+
bool CSession_Action::Session_Action_Insert(XNETHANDLE xhToken, XHANDLE xhAction, XENGINE_ACTIONINFO* pSt_ActionInfo)
47+
{
48+
Session_IsErrorOccur = false;
49+
50+
if ((NULL == xhAction) || (NULL == pSt_ActionInfo))
51+
{
52+
Session_IsErrorOccur = true;
53+
Session_dwErrorCode = ERROR_STORAGE_MODULE_SESSION_PARAMENT;
54+
return false;
55+
}
56+
SESSION_ACTIONINFO st_ActionInfo = {};
57+
st_ActionInfo.xhAction = xhAction;
58+
st_ActionInfo.st_ActionInfo = *pSt_ActionInfo;
59+
60+
st_Locker.lock();
61+
stl_MapAction.insert(make_pair(xhToken, st_ActionInfo));
62+
st_Locker.unlock();
63+
return true;
64+
}
65+
/********************************************************************
66+
函数名称:Session_Action_GetToken
67+
函数功能:获得一个下载器句柄
68+
参数.一:xhToken
69+
In/Out:In
70+
类型:句柄
71+
可空:N
72+
意思:输入要操作的动作句柄
73+
返回值
74+
类型:句柄型
75+
意思:返回下载器句柄
76+
备注:
77+
*********************************************************************/
78+
XHANDLE CSession_Action::Session_Action_GetToken(XNETHANDLE xhToken)
79+
{
80+
Session_IsErrorOccur = false;
81+
82+
st_Locker.lock_shared();
83+
unordered_map<XNETHANDLE, SESSION_ACTIONINFO>::iterator stl_MapIterator = stl_MapAction.find(xhToken);
84+
if (stl_MapIterator == stl_MapAction.end())
85+
{
86+
Session_IsErrorOccur = true;
87+
Session_dwErrorCode = ERROR_STORAGE_MODULE_SESSION_NOTFOUND;
88+
st_Locker.unlock_shared();
89+
return NULL;
90+
}
91+
XHANDLE xhAction = stl_MapIterator->second.xhAction;
92+
st_Locker.unlock_shared();
93+
return xhAction;
94+
}
95+
/********************************************************************
96+
函数名称:Session_Action_GetInfo
97+
函数功能:获取下载信息
98+
参数.一:xhToken
99+
In/Out:In
100+
类型:句柄
101+
可空:N
102+
意思:输入要操作的动作句柄
103+
参数.二:pSt_ActionInfo
104+
In/Out:Out
105+
类型:数据结构指针
106+
可空:N
107+
意思:输出内容
108+
返回值
109+
类型:逻辑型
110+
意思:是否成功
111+
备注:
112+
*********************************************************************/
113+
bool CSession_Action::Session_Action_GetInfo(XNETHANDLE xhToken, XENGINE_ACTIONINFO* pSt_ActionInfo)
114+
{
115+
Session_IsErrorOccur = false;
116+
117+
if ((NULL == pSt_ActionInfo))
118+
{
119+
Session_IsErrorOccur = true;
120+
Session_dwErrorCode = ERROR_STORAGE_MODULE_SESSION_PARAMENT;
121+
return false;
122+
}
123+
124+
st_Locker.lock_shared();
125+
unordered_map<XNETHANDLE, SESSION_ACTIONINFO>::iterator stl_MapIterator = stl_MapAction.find(xhToken);
126+
if (stl_MapIterator == stl_MapAction.end())
127+
{
128+
Session_IsErrorOccur = true;
129+
Session_dwErrorCode = ERROR_STORAGE_MODULE_SESSION_NOTFOUND;
130+
st_Locker.unlock_shared();
131+
return false;
132+
}
133+
*pSt_ActionInfo = stl_MapIterator->second.st_ActionInfo;
134+
st_Locker.unlock_shared();
135+
return true;
136+
}
137+
/********************************************************************
138+
函数名称:Session_Action_Delete
139+
函数功能:删除一个动作管理器
140+
参数.一:xhToken
141+
In/Out:In
142+
类型:句柄
143+
可空:N
144+
意思:输入要操作的动作句柄
145+
返回值
146+
类型:逻辑型
147+
意思:是否成功
148+
备注:
149+
*********************************************************************/
150+
bool CSession_Action::Session_Action_Delete(XNETHANDLE xhToken)
151+
{
152+
Session_IsErrorOccur = false;
153+
154+
st_Locker.lock();
155+
unordered_map<XNETHANDLE, SESSION_ACTIONINFO>::iterator stl_MapIterator = stl_MapAction.find(xhToken);
156+
if (stl_MapIterator != stl_MapAction.end())
157+
{
158+
stl_MapAction.erase(stl_MapIterator);
159+
}
160+
st_Locker.unlock();
161+
return true;
162+
}
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
#pragma once
2+
/********************************************************************
3+
// Created: 2024/05/10 14:51:09
4+
// File Name: D:\XEngine_Storage\XEngine_Source\StorageModule_Session\Session_Action\Session_Action.h
5+
// File Path: D:\XEngine_Storage\XEngine_Source\StorageModule_Session\Session_Action
6+
// File Base: Session_Action
7+
// File Ext: h
8+
// Project: XEngine(网络通信引擎)
9+
// Author: qyt
10+
// Purpose: 转录动作会话类
11+
// History:
12+
*********************************************************************/
13+
typedef struct
14+
{
15+
XENGINE_ACTIONINFO st_ActionInfo;
16+
XHANDLE xhAction;
17+
}SESSION_ACTIONINFO;
18+
19+
class CSession_Action
20+
{
21+
public:
22+
CSession_Action();
23+
~CSession_Action();
24+
public:
25+
bool Session_Action_Insert(XNETHANDLE xhToken, XHANDLE xhAction, XENGINE_ACTIONINFO* pSt_ActionInfo);
26+
XHANDLE Session_Action_GetToken(XNETHANDLE xhToken);
27+
bool Session_Action_GetInfo(XNETHANDLE xhToken, XENGINE_ACTIONINFO* pSt_ActionInfo);
28+
bool Session_Action_Delete(XNETHANDLE xhToken);
29+
private:
30+
shared_mutex st_Locker;
31+
private:
32+
unordered_map<XNETHANDLE, SESSION_ACTIONINFO> stl_MapAction;
33+
};

XEngine_Source/StorageModule_Session/Session_Define.h

Lines changed: 75 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -509,4 +509,78 @@ extern "C" bool Session_UPStroage_SetBoundary(LPCXSTR lpszClientAddr, LPCXSTR lp
509509
意思:是否成功
510510
备注:
511511
*********************************************************************/
512-
extern "C" bool Session_UPStroage_SetBoundaryStart(LPCXSTR lpszClientAddr);
512+
extern "C" bool Session_UPStroage_SetBoundaryStart(LPCXSTR lpszClientAddr);
513+
/************************************************************************/
514+
/* 存储会话导出的函数 */
515+
/************************************************************************/
516+
/********************************************************************
517+
函数名称:Session_Action_Insert
518+
函数功能:插入一个会话到动作管理器
519+
参数.一:xhToken
520+
In/Out:In
521+
类型:句柄
522+
可空:N
523+
意思:输入要插入的句柄
524+
参数.二:xhAction
525+
In/Out:In
526+
类型:句柄
527+
可空:N
528+
意思:输入下载器句柄
529+
参数.三:pSt_ActionInfo
530+
In/Out:In
531+
类型:数据结构指针
532+
可空:N
533+
意思:输入插入的信息
534+
返回值
535+
类型:逻辑型
536+
意思:是否成功
537+
备注:
538+
*********************************************************************/
539+
extern "C" bool Session_Action_Insert(XNETHANDLE xhToken, XHANDLE xhAction, XENGINE_ACTIONINFO* pSt_ActionInfo);
540+
/********************************************************************
541+
函数名称:Session_Action_GetToken
542+
函数功能:获得一个下载器句柄
543+
参数.一:xhToken
544+
In/Out:In
545+
类型:句柄
546+
可空:N
547+
意思:输入要操作的动作句柄
548+
返回值
549+
类型:句柄型
550+
意思:返回下载器句柄
551+
备注:
552+
*********************************************************************/
553+
extern "C" XHANDLE Session_Action_GetToken(XNETHANDLE xhToken);
554+
/********************************************************************
555+
函数名称:Session_Action_GetInfo
556+
函数功能:获取下载信息
557+
参数.一:xhToken
558+
In/Out:In
559+
类型:句柄
560+
可空:N
561+
意思:输入要操作的动作句柄
562+
参数.二:pSt_ActionInfo
563+
In/Out:Out
564+
类型:数据结构指针
565+
可空:N
566+
意思:输出内容
567+
返回值
568+
类型:逻辑型
569+
意思:是否成功
570+
备注:
571+
*********************************************************************/
572+
extern "C" bool Session_Action_GetInfo(XNETHANDLE xhToken, XENGINE_ACTIONINFO* pSt_ActionInfo);
573+
/********************************************************************
574+
函数名称:Session_Action_Delete
575+
函数功能:删除一个动作管理器
576+
参数.一:xhToken
577+
In/Out:In
578+
类型:句柄
579+
可空:N
580+
意思:输入要操作的动作句柄
581+
返回值
582+
类型:逻辑型
583+
意思:是否成功
584+
备注:
585+
*********************************************************************/
586+
extern "C" bool Session_Action_Delete(XNETHANDLE xhToken);

XEngine_Source/StorageModule_Session/StorageModule_Session.def

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,4 +29,9 @@ EXPORTS
2929
Session_UPStroage_Close
3030
Session_UPStroage_MaxConnect
3131
Session_UPStroage_SetBoundary
32-
Session_UPStroage_SetBoundaryStart
32+
Session_UPStroage_SetBoundaryStart
33+
34+
Session_Action_Insert
35+
Session_Action_GetToken
36+
Session_Action_GetInfo
37+
Session_Action_Delete

XEngine_Source/StorageModule_Session/StorageModule_Session.vcxproj

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@
7272
<PropertyGroup Label="UserMacros" />
7373
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
7474
<LinkIncremental>true</LinkIncremental>
75-
<IncludePath>$(XEngine_Include);$(IncludePath)</IncludePath>
75+
<IncludePath>$(XEngine_Include);..\StorageModule_Session;$(IncludePath)</IncludePath>
7676
<LibraryPath>$(XEngine_Lib32);$(LibraryPath)</LibraryPath>
7777
</PropertyGroup>
7878
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
@@ -169,6 +169,7 @@
169169
<ItemGroup>
170170
<ClInclude Include="framework.h" />
171171
<ClInclude Include="pch.h" />
172+
<ClInclude Include="Session_Action\Session_Action.h" />
172173
<ClInclude Include="Session_Define.h" />
173174
<ClInclude Include="Session_Error.h" />
174175
<ClInclude Include="Session_Stroage\Session_DLStroage.h" />
@@ -183,6 +184,7 @@
183184
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
184185
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
185186
</ClCompile>
187+
<ClCompile Include="Session_Action\Session_Action.cpp" />
186188
<ClCompile Include="Session_Stroage\Session_DLStroage.cpp" />
187189
<ClCompile Include="Session_Stroage\Session_UPStroage.cpp" />
188190
<ClCompile Include="Session_User\Session_User.cpp" />

XEngine_Source/StorageModule_Session/StorageModule_Session.vcxproj.filters

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,12 @@
2525
<Filter Include="源文件\Session_User">
2626
<UniqueIdentifier>{032cbde1-12f2-4e52-ab1d-81799538579f}</UniqueIdentifier>
2727
</Filter>
28+
<Filter Include="头文件\Session_Action">
29+
<UniqueIdentifier>{e950cfee-ded9-4200-a23c-3926b448090d}</UniqueIdentifier>
30+
</Filter>
31+
<Filter Include="源文件\Session_Action">
32+
<UniqueIdentifier>{a289814a-e390-41d8-90ea-ad0c68665334}</UniqueIdentifier>
33+
</Filter>
2834
</ItemGroup>
2935
<ItemGroup>
3036
<ClInclude Include="framework.h">
@@ -48,6 +54,9 @@
4854
<ClInclude Include="Session_User\Session_User.h">
4955
<Filter>头文件\Session_User</Filter>
5056
</ClInclude>
57+
<ClInclude Include="Session_Action\Session_Action.h">
58+
<Filter>头文件\Session_Action</Filter>
59+
</ClInclude>
5160
</ItemGroup>
5261
<ItemGroup>
5362
<ClCompile Include="dllmain.cpp">
@@ -65,6 +74,9 @@
6574
<ClCompile Include="Session_User\Session_User.cpp">
6675
<Filter>源文件\Session_User</Filter>
6776
</ClCompile>
77+
<ClCompile Include="Session_Action\Session_Action.cpp">
78+
<Filter>源文件\Session_Action</Filter>
79+
</ClCompile>
6880
</ItemGroup>
6981
<ItemGroup>
7082
<None Include="StorageModule_Session.def">

0 commit comments

Comments
 (0)