Skip to content

Core_Module

pojol edited this page Jan 31, 2018 · 5 revisions

Module

在框架中所有的逻辑节点都是一个Module, 他们之间互相不能直接访问。每一个Module在集群中都拥有一个自己的唯一ID,和如下的状态。

  • before_init
  • init
  • execute
  • shut
  • after_shut

当App创建一个Module的时候会先调用before_init完成初始化前的准备,然后调用init进行初始化,最后进入到进程的主循环(execute)中。 当Module需要从App中卸载时会一次调用shut完成退出逻辑,调用after_shut实现Module的真正退出。

module_type

gsf 中Module大致可以分为3类

  • c++ module

一个C++类 继承 ievent & imodule , 定义在c++代码中,程序启动时装载到App

  • lua module

一个lua虚拟机实例,通过lua_proxy完成和c++的绑定,可以在任意时刻装载到App,可以简单的实现热更功能即便持有状态

  • dynamic module

通过module_type创建的特殊Module,它只有module_id。 如非必要尽量不要使用

Clone this wiki locally