Documentation ¶
Index ¶
- func GetPluginCount(typ common.Type) int
- func GetPluginId(typ common.Type, name string) (int32, error)
- func IsPluginRegistered(typ common.Type, name string) bool
- func RegisterConfigurablePlugin(plugin Plugin, cfg config.BaseConfig)
- func RegisterPlugin(plugin Plugin)
- func RegisterPluginInterface(typ common.Type, plugin interface{})
- func RegisterPluginProxy(typ common.Type, proxy PluginProxy)
- type InitContext
- type Manager
- type Plugin
- type PluginBase
- func (b *PluginBase) Destroy() error
- func (b *PluginBase) GetSDKContextID() string
- func (b *PluginBase) ID() int32
- func (b *PluginBase) Init(ctx *InitContext) error
- func (b *PluginBase) IsEnable(cfg config.Configuration) bool
- func (b *PluginBase) Name() string
- func (b *PluginBase) Start() error
- func (b *PluginBase) Type() common.Type
- type PluginProxy
- type Supplier
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func RegisterConfigurablePlugin ¶
func RegisterConfigurablePlugin(plugin Plugin, cfg config.BaseConfig)
RegisterPlugin 注册插件到全局配置对象,并注册插件配置类型
func RegisterPluginInterface ¶
注册插件接口类型
Types ¶
type InitContext ¶
type InitContext struct { Config config.Configuration Plugins Supplier ValueCtx model.ValueContext ConnManager network.ConnectionManager PluginIndex int32 SDKContextID string }
用于插件初始化的上下文对象
type Manager ¶
type Manager interface { Supplier //InitPlugins 初始化插件列表 InitPlugins(initContext InitContext, types []common.Type, engine model.Engine, delegate func() error) (err error) //DestroyPlugins 销毁已初始化的插件列表 DestroyPlugins() (err error) //StartPlugins 执行已经初始化完毕的插件 StartPlugins() error }
*
- @brief 插件管理器统一接口
type Plugin ¶
type Plugin interface { //插件类型 Type() common.Type //插件id ID() int32 //返回插件所属的sdkContext的uuid GetSDKContextID() string //插件名,一个类型下插件名唯一 Name() string //初始化插件 Init(ctx *InitContext) error //启动插件,对于需要依赖外部资源,以及启动协程的操作,在Start方法里面做 Start() error //销毁插件,可用于释放资源 Destroy() error //插件是否启用 IsEnable(cfg config.Configuration) bool }
Plugin 所有插件的基础接口
type PluginBase ¶
type PluginBase struct {
// contains filtered or unexported fields
}
Plugin Base
func (*PluginBase) GetSDKContextID ¶
func (b *PluginBase) GetSDKContextID() string
获取所属sdkContext的uuid
func (*PluginBase) IsEnable ¶
func (b *PluginBase) IsEnable(cfg config.Configuration) bool
is enable
type PluginProxy ¶
Plugin的代理
type Supplier ¶
type Supplier interface { //GetPlugin 获取插件实例 GetPlugin(typ common.Type, name string) (Plugin, error) //GetPluginById 通过id获取插件实例 GetPluginById(id int32) (Plugin, error) //GetPluginsByType 获取一个类型的加载了的插件名字 GetPluginsByType(typ common.Type) []string //获取插件事件监听器 GetEventSubscribers(event common.PluginEventType) []common.PluginEventHandler //注册插件事件监听器,必须在Plugin.Init方法中进行,否则会出现并发读写问题 RegisterEventSubscriber(event common.PluginEventType, handler common.PluginEventHandler) }
*
- @brief 插件提供者
Click to show internal directories.
Click to hide internal directories.