增强插件系统:添加硬件插件类型及默认插件构造函数
- 在插件类型中新增硬件插件类型(PluginTypeHardware),以支持更多插件类型的扩展。 - 添加便捷的构造函数 NewBasePluginWithDefaultType 和 NewPluginWithDefaultType,简化插件创建过程,适用于不需要指定特殊类型的场景。 - 更新日志插件和统计插件的创建示例,展示如何使用默认插件类型。 此更新提升了插件系统的灵活性,便于开发者快速创建和管理插件。
This commit is contained in:
@@ -37,6 +37,41 @@ type Plugin interface {
|
||||
SetEnabled(enabled bool)
|
||||
}
|
||||
|
||||
// BasePluginImpl 提供插件接口的基本实现,用于适配Plugin接口
|
||||
// 这个结构体包装了BasePlugin,以便兼容context参数
|
||||
type BasePluginImpl struct {
|
||||
*BasePlugin
|
||||
}
|
||||
|
||||
// NewPlugin 创建一个基本插件实现,带有插件类型
|
||||
func NewPlugin(name, version, description, author string, pluginType PluginType) *BasePluginImpl {
|
||||
return &BasePluginImpl{
|
||||
BasePlugin: NewBasePlugin(name, version, description, author, pluginType),
|
||||
}
|
||||
}
|
||||
|
||||
// NewPluginWithDefaultType 创建一个基本插件实现,使用默认的通用插件类型
|
||||
func NewPluginWithDefaultType(name, version, description, author string) *BasePluginImpl {
|
||||
return &BasePluginImpl{
|
||||
BasePlugin: NewBasePluginWithDefaultType(name, version, description, author),
|
||||
}
|
||||
}
|
||||
|
||||
// Init 适配Init方法以支持context参数
|
||||
func (p *BasePluginImpl) Init(ctx context.Context, config map[string]interface{}) error {
|
||||
return p.BasePlugin.Init(config)
|
||||
}
|
||||
|
||||
// Start 适配Start方法以支持context参数
|
||||
func (p *BasePluginImpl) Start(ctx context.Context) error {
|
||||
return p.BasePlugin.Start()
|
||||
}
|
||||
|
||||
// Stop 适配Stop方法以支持context参数
|
||||
func (p *BasePluginImpl) Stop(ctx context.Context) error {
|
||||
return p.BasePlugin.Stop()
|
||||
}
|
||||
|
||||
// PluginInfo 插件信息
|
||||
type PluginInfo struct {
|
||||
Name string `json:"name"`
|
||||
|
Reference in New Issue
Block a user