Skip to content

Commit 4cc2234

Browse files
committed
modify:print info plugin module when load completed
1 parent 416481b commit 4cc2234

File tree

7 files changed

+163
-5
lines changed

7 files changed

+163
-5
lines changed

XEngine_Source/XEngine_ModulePlugin/ModulePlugin_Define.h

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -321,6 +321,74 @@ extern "C" bool ModulePlugin_Loader_Insert(LPCXSTR lpszModuleName, int nType = 0
321321
*********************************************************************/
322322
extern "C" bool ModulePlugin_Loader_Find(LPCXSTR lpszMethodName, int* pInt_Type);
323323
/********************************************************************
324+
函数名称:ModulePlugin_LibCore_Get
325+
函数功能:获取插件基础信息函数
326+
参数.一:lpszMethodName
327+
In/Out:In
328+
类型:常量字符指针
329+
可空:N
330+
意思:要操作的模块句柄
331+
参数.二:ptszPluginName
332+
In/Out:Out
333+
类型:字符指针
334+
可空:N
335+
意思:处理名称
336+
参数.三:ptszPluginVersion
337+
In/Out:Out
338+
类型:字符指针
339+
可空:N
340+
意思:版本号.使用x.x.x.x 格式
341+
参数.四:ptszPluginAuthor
342+
In/Out:Out
343+
类型:字符指针
344+
可空:N
345+
意思:作者
346+
参数.五:ptszPluginDesc
347+
In/Out:Out
348+
类型:字符指针
349+
可空:N
350+
意思:插件描述
351+
返回值
352+
类型:逻辑型
353+
意思:是否成功
354+
备注:
355+
*********************************************************************/
356+
extern "C" bool ModulePlugin_Loader_Get(LPCXSTR lpszMethodName, XCHAR* ptszPluginName = NULL, XCHAR* ptszPluginVersion = NULL, XCHAR* ptszPluginAuthor = NULL, XCHAR* ptszPluginDesc = NULL);
357+
/********************************************************************
358+
函数名称:ModulePlugin_Loader_GetForModule
359+
函数功能:通过模块名称获取模块信息
360+
参数.一:lpszModuleName
361+
In/Out:In
362+
类型:常量字符指针
363+
可空:N
364+
意思:要操作的模块名称
365+
参数.二:ptszPluginName
366+
In/Out:Out
367+
类型:字符指针
368+
可空:N
369+
意思:处理名称
370+
参数.三:ptszPluginVersion
371+
In/Out:Out
372+
类型:字符指针
373+
可空:N
374+
意思:版本号.使用x.x.x.x 格式
375+
参数.四:ptszPluginAuthor
376+
In/Out:Out
377+
类型:字符指针
378+
可空:N
379+
意思:作者
380+
参数.五:ptszPluginDesc
381+
In/Out:Out
382+
类型:字符指针
383+
可空:N
384+
意思:插件描述
385+
返回值
386+
类型:逻辑型
387+
意思:是否成功
388+
备注:
389+
*********************************************************************/
390+
extern "C" bool ModulePlugin_Loader_GetForModule(LPCXSTR lpszModuleName, XCHAR* ptszPluginName = NULL, XCHAR* ptszPluginVersion = NULL, XCHAR* ptszPluginAuthor = NULL, XCHAR* ptszPluginDesc = NULL);
391+
/********************************************************************
324392
函数名称:ModulePlugin_Loader_Exec
325393
函数功能:执行一次插件
326394
参数.一:lpszMethodName

XEngine_Source/XEngine_ModulePlugin/ModulePlugin_LibCore/ModulePlugin_LibCore.cpp

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -276,9 +276,7 @@ bool CModulePlugin_LibCore::ModulePlugin_LibCore_Add(XNETHANDLE xhNet, LPCXSTR l
276276
ModulePlugin_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PLUGIN_PARAMENT;
277277
return false;
278278
}
279-
PLUGINCORE_FRAMEWORK st_FrameWork;
280-
st_FrameWork.mhFile = 0;
281-
memset(st_FrameWork.tszModuleFile, '\0', sizeof(st_FrameWork.tszModuleFile));
279+
PLUGINCORE_FRAMEWORK st_FrameWork = {};
282280
//打开一个模块
283281
#ifdef _MSC_BUILD
284282
st_FrameWork.mhFile = LoadLibraryA(lpszPluginFile);

XEngine_Source/XEngine_ModulePlugin/ModulePlugin_Loader/ModulePlugin_Loader.cpp

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,79 @@ bool CModulePlugin_Loader::ModulePlugin_Loader_Get(LPCXSTR lpszMethodName, XCHAR
207207
return true;
208208
}
209209
/********************************************************************
210+
函数名称:ModulePlugin_Loader_GetForModule
211+
函数功能:通过模块名称获取模块信息
212+
参数.一:lpszModuleName
213+
In/Out:In
214+
类型:常量字符指针
215+
可空:N
216+
意思:要操作的模块名称
217+
参数.二:ptszPluginName
218+
In/Out:Out
219+
类型:字符指针
220+
可空:N
221+
意思:处理名称
222+
参数.三:ptszPluginVersion
223+
In/Out:Out
224+
类型:字符指针
225+
可空:N
226+
意思:版本号.使用x.x.x.x 格式
227+
参数.四:ptszPluginAuthor
228+
In/Out:Out
229+
类型:字符指针
230+
可空:N
231+
意思:作者
232+
参数.五:ptszPluginDesc
233+
In/Out:Out
234+
类型:字符指针
235+
可空:N
236+
意思:插件描述
237+
返回值
238+
类型:逻辑型
239+
意思:是否成功
240+
备注:
241+
*********************************************************************/
242+
bool CModulePlugin_Loader::ModulePlugin_Loader_GetForModule(LPCXSTR lpszModuleName, XCHAR* ptszPluginName /* = NULL */, XCHAR* ptszPluginVersion /* = NULL */, XCHAR* ptszPluginAuthor /* = NULL */, XCHAR* ptszPluginDesc /* = NULL */)
243+
{
244+
ModulePlugin_IsErrorOccur = false;
245+
246+
bool bFound = false;
247+
st_Locker.lock_shared();
248+
for (auto stl_MapIterator = stl_MapLoader.begin(); stl_MapIterator != stl_MapLoader.end(); stl_MapIterator++)
249+
{
250+
if (0 == _tcsxnicmp(lpszModuleName, stl_MapIterator->second.tszModuleFile, _tcsxlen(stl_MapIterator->second.tszModuleFile)))
251+
{
252+
if (NULL != ptszPluginName)
253+
{
254+
_tcsxcpy(ptszPluginName, stl_MapIterator->second.tszModuleName);
255+
}
256+
if (NULL != ptszPluginVersion)
257+
{
258+
_tcsxcpy(ptszPluginVersion, stl_MapIterator->second.tszModuleVer);
259+
}
260+
if (NULL != ptszPluginAuthor)
261+
{
262+
_tcsxcpy(ptszPluginAuthor, stl_MapIterator->second.tszModuleAuthor);
263+
}
264+
if (NULL != ptszPluginDesc)
265+
{
266+
_tcsxcpy(ptszPluginDesc, stl_MapIterator->second.tszModuleDesc);
267+
}
268+
bFound = true;
269+
break;
270+
}
271+
}
272+
st_Locker.unlock_shared();
273+
274+
if (!bFound)
275+
{
276+
ModulePlugin_IsErrorOccur = true;
277+
ModulePlugin_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PLUGIN_NOTFOUND;
278+
return false;
279+
}
280+
return true;
281+
}
282+
/********************************************************************
210283
函数名称:ModulePlugin_Loader_Exec
211284
函数功能:执行一次插件
212285
参数.一:lpszMethodName

XEngine_Source/XEngine_ModulePlugin/ModulePlugin_Loader/ModulePlugin_Loader.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ class CModulePlugin_Loader
3232
bool ModulePlugin_Loader_Insert(LPCXSTR lpszModuleName, int nType = 0);
3333
bool ModulePlugin_Loader_Find(LPCXSTR lpszMethodName, int* pInt_Type);
3434
bool ModulePlugin_Loader_Get(LPCXSTR lpszMethodName, XCHAR* ptszPluginName = NULL, XCHAR* ptszPluginVersion = NULL, XCHAR* ptszPluginAuthor = NULL, XCHAR* ptszPluginDesc = NULL);
35+
bool ModulePlugin_Loader_GetForModule(LPCXSTR lpszModuleName, XCHAR* ptszPluginName = NULL, XCHAR* ptszPluginVersion = NULL, XCHAR* ptszPluginAuthor = NULL, XCHAR* ptszPluginDesc = NULL);
3536
bool ModulePlugin_Loader_Exec(LPCXSTR lpszMethodName, XCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR* ptszMsgBuffer, int* pInt_MsgLen);
3637
bool ModulePlugin_Loader_Destory();
3738
protected:

XEngine_Source/XEngine_ModulePlugin/XEngine_ModulePlugin.def

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,5 +18,7 @@ EXPORTS
1818
ModulePlugin_Loader_Init
1919
ModulePlugin_Loader_Insert
2020
ModulePlugin_Loader_Find
21+
ModulePlugin_Loader_Get
22+
ModulePlugin_Loader_GetForModule
2123
ModulePlugin_Loader_Exec
2224
ModulePlugin_Loader_Destory

XEngine_Source/XEngine_ModulePlugin/pch.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,14 @@ extern "C" bool ModulePlugin_Loader_Find(LPCXSTR lpszMethodName, int* pInt_Type)
9191
{
9292
return m_PluginLoader.ModulePlugin_Loader_Find(lpszMethodName, pInt_Type);
9393
}
94+
extern "C" bool ModulePlugin_Loader_Get(LPCXSTR lpszMethodName, XCHAR* ptszPluginName, XCHAR* ptszPluginVersion, XCHAR* ptszPluginAuthor, XCHAR* ptszPluginDesc)
95+
{
96+
return m_PluginLoader.ModulePlugin_Loader_Get(lpszMethodName, ptszPluginName, ptszPluginVersion, ptszPluginAuthor, ptszPluginDesc);
97+
}
98+
extern "C" bool ModulePlugin_Loader_GetForModule(LPCXSTR lpszModuleName, XCHAR* ptszPluginName, XCHAR* ptszPluginVersion, XCHAR* ptszPluginAuthor, XCHAR* ptszPluginDesc)
99+
{
100+
return m_PluginLoader.ModulePlugin_Loader_GetForModule(lpszModuleName, ptszPluginName, ptszPluginVersion, ptszPluginAuthor, ptszPluginDesc);
101+
}
94102
extern "C" bool ModulePlugin_Loader_Exec(LPCXSTR lpszMethodName, XCHAR * **pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR * ptszMsgBuffer, int* pInt_MsgLen)
95103
{
96104
return m_PluginLoader.ModulePlugin_Loader_Exec(lpszMethodName, pppHDRList, nListCount, pInt_HTTPCode, ptszMsgBuffer, pInt_MsgLen);

XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HttpApp.cpp

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -420,7 +420,11 @@ int main(int argc, char** argv)
420420
//加载插件
421421
if (ModulePlugin_Loader_Insert(pptszListFile[i], 0))
422422
{
423-
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("启动服务中,加载Lib模块插件中,当前第:%d 个加载成功,路径:%s"), i, pptszListFile[i]);
423+
XCHAR tszModuleName[128] = {};
424+
XCHAR tszModuleAuthor[64] = {};
425+
XCHAR tszModuleVer[64] = {};
426+
ModulePlugin_Loader_GetForModule(pptszListFile[i], tszModuleName, tszModuleVer, tszModuleAuthor);
427+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("启动服务中,加载Lib模块插件中,当前第:%d 个加载成功,路径:%s,方法名:%s,作者:%s,版本:V%s"), i, pptszListFile[i], tszModuleName, tszModuleAuthor, tszModuleVer);
424428
}
425429
else
426430
{
@@ -441,7 +445,11 @@ int main(int argc, char** argv)
441445
{
442446
if (ModulePlugin_Loader_Insert(pptszListFile[i], 1))
443447
{
444-
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("启动服务中,加载Lua模块插件中,当前第:%d 个加载成功,路径:%s"), i, pptszListFile[i]);
448+
XCHAR tszModuleName[128] = {};
449+
XCHAR tszModuleAuthor[64] = {};
450+
XCHAR tszModuleVer[64] = {};
451+
ModulePlugin_Loader_GetForModule(pptszListFile[i], tszModuleName, tszModuleVer, tszModuleAuthor);
452+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("启动服务中,加载Lua模块插件中,当前第:%d 个加载成功,路径:%s,方法名:%s,作者:%s,版本:V%s"), i, pptszListFile[i], tszModuleName, tszModuleAuthor, tszModuleVer);
445453
}
446454
else
447455
{

0 commit comments

Comments
 (0)