开源服务器框架NoahFrame分享 第二章:插件与模块[图]
时间:2017-10-31 11:55:22
return false;
}
for (rapidxml::xml_node<>* pPluginNode = pAppNameNode->first_node("Plugin"); pPluginNode; pPluginNode = pPluginNode->next_sibling("Plugin"))
{
const char* strPluginName = pPluginNode->first_attribute("Name")->value();
mPluginNameMap.insert(PluginNameMap::value_type(strPluginName, true));
}
rapidxml::xml_node<>* pPluginConfigPathNode = pAppNameNode->first_node("ConfigPath");
if (!pPluginConfigPathNode)
{
NFASSERT(0, "There are no ConfigPath", __FILE__, __FUNCTION__);
return false;
}
if (NULL == pPluginConfigPathNode->first_attribute("Name"))
{
NFASSERT(0, "There are no ConfigPath.Name", __FILE__, __FUNCTION__);
return false;
}
mstrConfigPath = pPluginConfigPathNode->first_attribute("Name")->value();
return true;
}
其次会开始执行Init AfterInit等函数,每个函数都会调用内部NFIPlugin的同名接口,而在NFIPlugin内部又会调用所有的Module同名接口。比如Init函数做实例:
调用NFCPluginManager::Init内部会迭代所有的NFIPlugin,来调用NFIPlugin同名Init函数:
virtual bool NFCPluginManager::Init()
{
PluginInstanceMap::iterator itInstance = mPluginInstanceMap.begin();
相关游戏
-
开源读书软件26MB新闻资讯
-
开源阅读app1MB新闻资讯
-
tap,tap双击背部官网111MB系统安全
-
小松鼠短视频完美开源源码26MB影音视频
最新合集
- 我的世界Jennyslipperyt合集2021-8-19
- 成语大富豪游戏合集2021-8-16
- 古装视频faceplay合集2021-8-20
- 小洽暖软件合集2021-8-18
- 小洽暖会员合集2021-8-20
- 换脸古风视频制作合集2021-8-20
- 火柴人觉醒破解版合集2021-8-18
- bud游戏下载美乐蒂合集2021-8-17
- faceplay安卓版合集2021-8-18
- 网上最火的古装换脸软件合集2021-8-17
相关文章
最新游戏
玩家评论
网名(您的评论需要经过审核才能显示) 回复 [ ] 楼取消回复