-
Notifications
You must be signed in to change notification settings - Fork 29
Chapter 1:NFPluginLoader,Plugin,Module
yigao edited this page Jun 26, 2022
·
17 revisions
整个服务器最主要的进程文件就是NFPluginLoader,以及各种各样的so文件,NFPluginLoader通过so文件的加载,实现NFCPluginManager引擎管理类对plugin类,module类的管理,查询。服务器最重要的三个类分别是:NFCPluginManager, NFIPlugin, NFIModule:
-
NFCPluginManager存有所有的NFIPlugin,NFIModule的指针, 通过FindModule()函数随时查找NFIModule实例,实现对全局业务的调度,比如:
FindModule()->InitLogSystem()
FindModule()->LoadConfig()
-
NFCPluginManager的Begin函数负责服务器启动,End函数负责正规退出服务器,Execute负责服务器死循环执行,并通过每一次运行的时间控制,来实现服务器的帧频
继承NFIPlugin的类都比较简单,没有复杂业务,只需实现这几个函数即可,最重要的就是Install,InitShmObjectRegister
- Install用来注册module
- InitShmObjectRegister用来注册共享内存类
如:NFWorldServerPlayerPlugin::Install()函数里, 通过REGISTER_MODULE宏来注册module
REGISTER_MODULE(m_pPluginManager, NFIWorldPlayerModule, NFCWorldPlayerModule);
注册后,就可以通过FindModule<NFIWorldPlayerModule>
来调用到这个module