module

package
v0.1.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 5, 2020 License: MIT Imports: 11 Imported by: 0

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

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) GetModuleNum

func (bm *BaseModule) GetModuleNum() int

GetModuleNum 获取模块编号

func (*BaseModule) GetModuleType

func (bm *BaseModule) GetModuleType() string

GetModuleType 获取模块类型

func (*BaseModule) InitModule

func (bm *BaseModule) InitModule(configer conf.ModuleConfig) error

InitModule 初始化模块

func (*BaseModule) IsStopped

func (bm *BaseModule) IsStopped() bool

IsStopped 判断模块是否已中止

func (*BaseModule) KillModule

func (bm *BaseModule) KillModule()

KillModule 当模块被中止时调用

func (*BaseModule) SetModuleID

func (bm *BaseModule) SetModuleID(id string)

SetModuleID 设置模块的ID,需要谨慎使用,不可在模块运行起来后设置!

func (*BaseModule) TopRunner

func (bm *BaseModule) TopRunner()

TopRunner 开始运行一个模块

type IModule

type IModule interface {
	base.IModule
	InitModule(conf.ModuleConfig) error
	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 一个模块应具备的接口

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL