Documentation ¶
Overview ¶
Package module 基础模块,实现了基本的模块接口,利于上层使用 micserver ,在业务中自定义模块时, 可以直接继承该基础模块,继承于基础模块(使用匿名成员实现)的上层业务模块, 即实现了 IModule 接口。例如:
type FooModule struct { module.BaseModule ... }
需要注意的是有些方法在重载时,需要在重载中调用父类的该方法,且调用顺序有要求:
如果你需要在例如 AfterInitModule() 中增加逻辑,请使用如下顺序: func (bm *FooModule) AfterInitModule() { // 先调用父类方法 bm.BaseModule.AfterInitModule() // 其他逻辑 ... } 如果你需要在例如 KillModule() 中增加逻辑,请使用如下顺序: func (bm *FooModule) KillModule() { // 其他逻辑 ... // 最后调用父类方法 bm.BaseModule.KillModule() }
Index ¶
- type BaseModule
- func (bm *BaseModule) AfterInitModule()
- func (bm *BaseModule) GenUniqueID() (string, error)
- func (bm *BaseModule) GetConfiger() *conf.ModuleConfig
- func (bm *BaseModule) GetModuleID() string
- func (bm *BaseModule) GetModuleIDHash() uint32
- func (bm *BaseModule) GetModuleNum() int
- func (bm *BaseModule) GetModuleType() string
- func (bm *BaseModule) InitModule(configer conf.ModuleConfig)
- func (bm *BaseModule) IsStopped() bool
- func (bm *BaseModule) KillModule()
- func (bm *BaseModule) SetModuleID(id string)
- func (bm *BaseModule) TopRunner()
- type IModule
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type BaseModule ¶
type BaseModule struct { *log.Logger TimerManager timer.Manager server.Server // contains filtered or unexported fields }
BaseModule 基础模块
func (*BaseModule) AfterInitModule ¶
func (bm *BaseModule) AfterInitModule()
AfterInitModule 在初始化完成后调用
func (*BaseModule) GenUniqueID ¶
func (bm *BaseModule) GenUniqueID() (string, error)
GenUniqueID 在该模块环境下生成一个UUID,这个UUID保证在本模块中是唯一的
func (*BaseModule) GetConfiger ¶
func (bm *BaseModule) GetConfiger() *conf.ModuleConfig
GetConfiger 获取模块的配置
func (*BaseModule) GetModuleID ¶
func (bm *BaseModule) GetModuleID() string
GetModuleID 获取模块的ID,模块的ID有模块类型和模块编号确定,如 moduleid = fmt.Sprintf("%s%d", typ, num)
func (*BaseModule) GetModuleIDHash ¶
func (bm *BaseModule) GetModuleIDHash() uint32
GetModuleIDHash 获取模块ID哈希值
func (*BaseModule) GetModuleType ¶
func (bm *BaseModule) GetModuleType() string
GetModuleType 获取模块类型
func (*BaseModule) InitModule ¶
func (bm *BaseModule) InitModule(configer conf.ModuleConfig)
InitModule 初始化模块
func (*BaseModule) SetModuleID ¶
func (bm *BaseModule) SetModuleID(id string)
SetModuleID 设置模块的ID,需要谨慎使用,不可在模块运行起来后设置!
type IModule ¶
type IModule interface { base.IModule InitModule(conf.ModuleConfig) BindSubnet(map[string]string) AfterInitModule() TopRunner() KillModule() IsStopped() bool GetConfiger() *conf.ModuleConfig ROCCallNR(callpath *roc.Path, callarg []byte) error ROCCallBlock(callpath *roc.Path, callarg []byte) ([]byte, error) }
IModule 一个模块应具备的接口
Click to show internal directories.
Click to hide internal directories.