Skip to content

Commit 24a9df4

Browse files
committed
added:server option supported
1 parent 280036a commit 24a9df4

File tree

9 files changed

+220
-5
lines changed

9 files changed

+220
-5
lines changed

XEngine_Source/XEngine_ModuleConfigure/Makefile

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ LOADBIN = -L ../XEngine_ThirdPart/jsoncpp
88
LIB = -ljsoncpp
99
LIBEX = -ldl -lpthread
1010
LOADSO = -Wl,-rpath=./,--disable-new-dtags
11-
LIBINCLUDE = ModuleConfigure_Json.o pch.o
11+
LIBINCLUDE = ModuleConfigure_Json.o ModuleConfigure_File.o pch.o
1212

1313
ifeq ($(shell uname),Darwin)
1414
SHAREDLL = dylib
@@ -39,7 +39,9 @@ all:$(LIBINCLUDE)
3939

4040
ModuleConfigure_Json.o:./ModuleConfigure_Json/ModuleConfigure_Json.cpp
4141
$(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(INCLUDE) ./ModuleConfigure_Json/ModuleConfigure_Json.cpp
42-
42+
ModuleConfigure_File.o:./ModuleConfigure_File/ModuleConfigure_File.cpp
43+
$(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(INCLUDE) ./ModuleConfigure_File/ModuleConfigure_File.cpp
44+
4345
pch.o:./pch.cpp
4446
$(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(INCLUDE) ./pch.cpp
4547

XEngine_Source/XEngine_ModuleConfigure/ModuleConfig_Define.h

Lines changed: 36 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,19 @@ typedef struct
8686
list<XENGINE_PLUGININFO>* pStl_ListPlugin;
8787
}XENGINE_PLUGINCONFIG;
8888
//////////////////////////////////////////////////////////////////////////
89+
typedef struct
90+
{
91+
BOOL bEnable;
92+
TCHAR tszOPMethod[MAX_PATH];
93+
TCHAR tszOPNote[MAX_PATH];
94+
TCHAR tszOPExample[MAX_PATH];
95+
}XENGINE_OPTIONINFO;
96+
typedef struct
97+
{
98+
list<XENGINE_OPTIONINFO> stl_ListBase;
99+
list<XENGINE_OPTIONINFO> stl_ListPlug;
100+
}XENGINE_OPTIONLIST;
101+
//////////////////////////////////////////////////////////////////////////
89102
// 导出函数定义
90103
//////////////////////////////////////////////////////////////////////////
91104
extern "C" DWORD ModuleConfigure_GetLastError(int* pInt_ErrorCode = NULL);
@@ -148,4 +161,26 @@ extern "C" BOOL ModuleConfigure_Json_OPenccFile(LPCTSTR lpszConfigFile, XENGINE_
148161
意思:是否成功
149162
备注:
150163
*********************************************************************/
151-
extern "C" BOOL ModuleConfigure_Json_PluginFile(LPCTSTR lpszConfigFile, XENGINE_PLUGINCONFIG* pSt_PluginConfig);
164+
extern "C" BOOL ModuleConfigure_Json_PluginFile(LPCTSTR lpszConfigFile, XENGINE_PLUGINCONFIG* pSt_PluginConfig);
165+
/************************************************************************/
166+
/* 其他内容读取 */
167+
/************************************************************************/
168+
/********************************************************************
169+
函数名称:ModuleConfigure_File_OPtion
170+
函数功能:服务器可用方法查询配置文件
171+
参数.一:lpszConfigFile
172+
In/Out:In
173+
类型:常量字符指针
174+
可空:N
175+
意思:输入要读取的配置文件
176+
参数.二:pSt_OPtionList
177+
In/Out:Out
178+
类型:数据结构指针
179+
可空:N
180+
意思:输出信息列表
181+
返回值
182+
类型:逻辑型
183+
意思:是否成功
184+
备注:
185+
*********************************************************************/
186+
extern "C" BOOL ModuleConfigure_File_OPtion(LPCTSTR lpszConfigFile, XENGINE_OPTIONLIST* pSt_OPtionList);

XEngine_Source/XEngine_ModuleConfigure/ModuleConfig_Error.h

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,4 +19,10 @@
1919
#define ERROR_MODULE_CONFIGURE_JSON_XDB 0xA0007 //数据库配置错误
2020
#define ERROR_MODULE_CONFIGURE_JSON_XPLUGIN 0xA0008 //插件配置错误
2121
#define ERROR_MODULE_CONFIGURE_JSON_XVER 0xA0009 //版本配置文件读取错误
22-
#define ERROR_MODULE_CONFIGURE_JSON_MALLOC 0xA000A //申请内存失败
22+
#define ERROR_MODULE_CONFIGURE_JSON_MALLOC 0xA000A //申请内存失败
23+
//////////////////////////////////////////////////////////////////////////
24+
#define ERROR_MODULE_CONFIGURE_FILE_PARAMENT 0xA1001 //参数错误
25+
#define ERROR_MODULE_CONFIGURE_FILE_OPENFILE 0xA1002 //打开文件失败
26+
#define ERROR_MODULE_CONFIGURE_FILE_PARSE 0xA1003 //解析错误
27+
#define ERROR_MODULE_CONFIGURE_FILE_BASE 0xA1004 //基础信息不存在
28+
#define ERROR_MODULE_CONFIGURE_JSON_PLUGIN 0xA1005 //插件信息不存在
Lines changed: 124 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,124 @@
1+
#include "pch.h"
2+
#include "ModuleConfigure_File.h"
3+
/********************************************************************
4+
// Created: 2022/07/21 17:07:28
5+
// File Name: H:\XEngine_APIService\XEngine_Source\XEngine_ModuleConfigure\ModuleConfigure_File\ModuleConfigure_File.cpp
6+
// File Path: H:\XEngine_APIService\XEngine_Source\XEngine_ModuleConfigure\ModuleConfigure_File
7+
// File Base: ModuleConfigure_File
8+
// File Ext: cpp
9+
// Project: XEngine(网络通信引擎)
10+
// Author: qyt
11+
// Purpose: 文件信息读写
12+
// History:
13+
*********************************************************************/
14+
CModuleConfigure_File::CModuleConfigure_File()
15+
{
16+
17+
}
18+
CModuleConfigure_File::~CModuleConfigure_File()
19+
{
20+
21+
}
22+
//////////////////////////////////////////////////////////////////////////
23+
// 公用函数
24+
//////////////////////////////////////////////////////////////////////////
25+
/********************************************************************
26+
函数名称:ModuleConfigure_File_OPtion
27+
函数功能:服务器可用方法查询配置文件
28+
参数.一:lpszConfigFile
29+
In/Out:In
30+
类型:常量字符指针
31+
可空:N
32+
意思:输入要读取的配置文件
33+
参数.二:pSt_OPtionList
34+
In/Out:Out
35+
类型:数据结构指针
36+
可空:N
37+
意思:输出信息列表
38+
返回值
39+
类型:逻辑型
40+
意思:是否成功
41+
备注:
42+
*********************************************************************/
43+
BOOL CModuleConfigure_File::ModuleConfigure_File_OPtion(LPCTSTR lpszConfigFile, XENGINE_OPTIONLIST* pSt_OPtionList)
44+
{
45+
Config_IsErrorOccur = FALSE;
46+
47+
if ((NULL == lpszConfigFile) || (NULL == pSt_OPtionList))
48+
{
49+
Config_IsErrorOccur = TRUE;
50+
Config_dwErrorCode = ERROR_MODULE_CONFIGURE_FILE_PARAMENT;
51+
return FALSE;
52+
}
53+
Json::Value st_JsonRoot;
54+
JSONCPP_STRING st_JsonError;
55+
Json::CharReaderBuilder st_JsonBuilder;
56+
//读取配置文件所有内容到缓冲区
57+
FILE* pSt_File = _tfopen(lpszConfigFile, _T("rb"));
58+
if (NULL == pSt_File)
59+
{
60+
Config_IsErrorOccur = TRUE;
61+
Config_dwErrorCode = ERROR_MODULE_CONFIGURE_FILE_OPENFILE;
62+
return FALSE;
63+
}
64+
size_t nCount = 0;
65+
TCHAR tszMsgBuffer[4096];
66+
while (1)
67+
{
68+
size_t nRet = fread(tszMsgBuffer + nCount, 1, 2048, pSt_File);
69+
if (nRet <= 0)
70+
{
71+
break;
72+
}
73+
nCount += nRet;
74+
}
75+
fclose(pSt_File);
76+
//开始解析配置文件
77+
std::unique_ptr<Json::CharReader> const pSt_JsonReader(st_JsonBuilder.newCharReader());
78+
if (!pSt_JsonReader->parse(tszMsgBuffer, tszMsgBuffer + nCount, &st_JsonRoot, &st_JsonError))
79+
{
80+
Config_IsErrorOccur = TRUE;
81+
Config_dwErrorCode = ERROR_MODULE_CONFIGURE_FILE_PARSE;
82+
return FALSE;
83+
}
84+
85+
if (st_JsonRoot["OPTionBase"].empty())
86+
{
87+
Config_IsErrorOccur = TRUE;
88+
Config_dwErrorCode = ERROR_MODULE_CONFIGURE_FILE_BASE;
89+
return FALSE;
90+
}
91+
if (st_JsonRoot["OPTionPlugin"].empty())
92+
{
93+
Config_IsErrorOccur = TRUE;
94+
Config_dwErrorCode = ERROR_MODULE_CONFIGURE_JSON_PLUGIN;
95+
return FALSE;
96+
}
97+
Json::Value st_JsonBase = st_JsonRoot["OPTionBase"];
98+
for (unsigned int i = 0; i < st_JsonBase.size(); i++)
99+
{
100+
XENGINE_OPTIONINFO st_OPTionInfo;
101+
memset(&st_OPTionInfo, '\0', sizeof(XENGINE_OPTIONINFO));
102+
103+
st_OPTionInfo.bEnable = st_JsonBase[i]["OPTionEnable"].asBool();
104+
_tcscpy(st_OPTionInfo.tszOPMethod, st_JsonBase[i]["OPTionMethod"].asCString());
105+
_tcscpy(st_OPTionInfo.tszOPNote, st_JsonBase[i]["OPTionNote"].asCString());
106+
_tcscpy(st_OPTionInfo.tszOPExample, st_JsonBase[i]["OPTionExample"].asCString());
107+
108+
pSt_OPtionList->stl_ListBase.push_back(st_OPTionInfo);
109+
}
110+
Json::Value st_JsonPlug = st_JsonRoot["OPTionPlugin"];
111+
for (unsigned int i = 0; i < st_JsonPlug.size(); i++)
112+
{
113+
XENGINE_OPTIONINFO st_OPTionInfo;
114+
memset(&st_OPTionInfo, '\0', sizeof(XENGINE_OPTIONINFO));
115+
116+
st_OPTionInfo.bEnable = st_JsonPlug[i]["OPTionEnable"].asBool();
117+
_tcscpy(st_OPTionInfo.tszOPMethod, st_JsonPlug[i]["OPTionMethod"].asCString());
118+
_tcscpy(st_OPTionInfo.tszOPNote, st_JsonPlug[i]["OPTionNote"].asCString());
119+
_tcscpy(st_OPTionInfo.tszOPExample, st_JsonPlug[i]["OPTionExample"].asCString());
120+
121+
pSt_OPtionList->stl_ListPlug.push_back(st_OPTionInfo);
122+
}
123+
return TRUE;
124+
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
#pragma once
2+
/********************************************************************
3+
// Created: 2022/07/21 17:07:01
4+
// File Name: H:\XEngine_APIService\XEngine_Source\XEngine_ModuleConfigure\ModuleConfigure_File\ModuleConfigure_File.h
5+
// File Path: H:\XEngine_APIService\XEngine_Source\XEngine_ModuleConfigure\ModuleConfigure_File
6+
// File Base: ModuleConfigure_File
7+
// File Ext: h
8+
// Project: XEngine(网络通信引擎)
9+
// Author: qyt
10+
// Purpose: 文件信息读写
11+
// History:
12+
*********************************************************************/
13+
14+
class CModuleConfigure_File
15+
{
16+
public:
17+
CModuleConfigure_File();
18+
~CModuleConfigure_File();
19+
public:
20+
BOOL ModuleConfigure_File_OPtion(LPCTSTR lpszConfigFile, XENGINE_OPTIONLIST* pSt_OPtionList);
21+
protected:
22+
private:
23+
};

XEngine_Source/XEngine_ModuleConfigure/XEngine_ModuleConfigure.def

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,6 @@ EXPORTS
55

66
ModuleConfigure_Json_File
77
ModuleConfigure_Json_OPenccFile
8-
ModuleConfigure_Json_PluginFile
8+
ModuleConfigure_Json_PluginFile
9+
10+
ModuleConfigure_File_OPtion

XEngine_Source/XEngine_ModuleConfigure/XEngine_ModuleConfigure.vcxproj

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -169,13 +169,15 @@
169169
</ItemDefinitionGroup>
170170
<ItemGroup>
171171
<ClInclude Include="framework.h" />
172+
<ClInclude Include="ModuleConfigure_File\ModuleConfigure_File.h" />
172173
<ClInclude Include="ModuleConfigure_Json\ModuleConfigure_Json.h" />
173174
<ClInclude Include="ModuleConfig_Define.h" />
174175
<ClInclude Include="ModuleConfig_Error.h" />
175176
<ClInclude Include="pch.h" />
176177
</ItemGroup>
177178
<ItemGroup>
178179
<ClCompile Include="dllmain.cpp" />
180+
<ClCompile Include="ModuleConfigure_File\ModuleConfigure_File.cpp" />
179181
<ClCompile Include="ModuleConfigure_Json\ModuleConfigure_Json.cpp" />
180182
<ClCompile Include="pch.cpp">
181183
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>

XEngine_Source/XEngine_ModuleConfigure/XEngine_ModuleConfigure.vcxproj.filters

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,12 @@
1919
<Filter Include="源文件\ModuleConfigure_Json">
2020
<UniqueIdentifier>{865425d8-f7eb-4fb9-bcd1-8bb631209b4e}</UniqueIdentifier>
2121
</Filter>
22+
<Filter Include="头文件\ModuleConfigure_File">
23+
<UniqueIdentifier>{6976af83-32b2-4404-a20e-2f619e57daad}</UniqueIdentifier>
24+
</Filter>
25+
<Filter Include="源文件\ModuleConfigure_File">
26+
<UniqueIdentifier>{6b6efe12-6349-4581-a649-d81c086fb267}</UniqueIdentifier>
27+
</Filter>
2228
</ItemGroup>
2329
<ItemGroup>
2430
<ClInclude Include="framework.h">
@@ -36,6 +42,9 @@
3642
<ClInclude Include="ModuleConfig_Error.h">
3743
<Filter>头文件</Filter>
3844
</ClInclude>
45+
<ClInclude Include="ModuleConfigure_File\ModuleConfigure_File.h">
46+
<Filter>头文件\ModuleConfigure_File</Filter>
47+
</ClInclude>
3948
</ItemGroup>
4049
<ItemGroup>
4150
<ClCompile Include="dllmain.cpp">
@@ -47,6 +56,9 @@
4756
<ClCompile Include="ModuleConfigure_Json\ModuleConfigure_Json.cpp">
4857
<Filter>源文件\ModuleConfigure_Json</Filter>
4958
</ClCompile>
59+
<ClCompile Include="ModuleConfigure_File\ModuleConfigure_File.cpp">
60+
<Filter>源文件\ModuleConfigure_File</Filter>
61+
</ClCompile>
5062
</ItemGroup>
5163
<ItemGroup>
5264
<None Include="XEngine_ModuleConfigure.def">

XEngine_Source/XEngine_ModuleConfigure/pch.cpp

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
#include "pch.h"
22
#include "ModuleConfigure_Json/ModuleConfigure_Json.h"
3+
#include "ModuleConfigure_File/ModuleConfigure_File.h"
34
/********************************************************************
45
// Created: 2021/12/02 16:20:26
56
// File Name: D:\XEngine_ServiceApp\XEngine_Source\XEngine_ModuleConfigure\pch.cpp
@@ -15,6 +16,7 @@ BOOL Config_IsErrorOccur = FALSE;
1516
DWORD Config_dwErrorCode = 0;
1617
//////////////////////////////////////////////////////////////////////
1718
CModuleConfigure_Json m_ConfigJson;
19+
CModuleConfigure_File m_ConfigFile;
1820
//////////////////////////////////////////////////////////////////////
1921
// 导出函数定义
2022
//////////////////////////////////////////////////////////////////////
@@ -40,4 +42,11 @@ extern "C" BOOL ModuleConfigure_Json_OPenccFile(LPCTSTR lpszConfigFile, XENGINE_
4042
extern "C" BOOL ModuleConfigure_Json_PluginFile(LPCTSTR lpszConfigFile, XENGINE_PLUGINCONFIG * pSt_PluginConfig)
4143
{
4244
return m_ConfigJson.ModuleConfigure_Json_PluginFile(lpszConfigFile, pSt_PluginConfig);
45+
}
46+
/************************************************************************/
47+
/* 其他内容读取 */
48+
/************************************************************************/
49+
extern "C" BOOL ModuleConfigure_File_OPtion(LPCTSTR lpszConfigFile, XENGINE_OPTIONLIST * pSt_OPtionList)
50+
{
51+
return m_ConfigFile.ModuleConfigure_File_OPtion(lpszConfigFile, pSt_OPtionList);
4352
}

0 commit comments

Comments
 (0)