增强插件系统:添加硬件插件类型及默认插件构造函数

- 在插件类型中新增硬件插件类型(PluginTypeHardware),以支持更多插件类型的扩展。
- 添加便捷的构造函数 NewBasePluginWithDefaultType 和 NewPluginWithDefaultType,简化插件创建过程,适用于不需要指定特殊类型的场景。
- 更新日志插件和统计插件的创建示例,展示如何使用默认插件类型。

此更新提升了插件系统的灵活性,便于开发者快速创建和管理插件。
This commit is contained in:
2025-03-14 11:14:47 +08:00
parent 098c721ee9
commit 0990e8c42c
7 changed files with 294 additions and 25 deletions

View File

@@ -23,17 +23,30 @@ type StatsPlugin struct {
// Plugin 导出的插件变量
var Plugin = &StatsPlugin{
BasePlugin: plugin.NewBasePlugin(
// 使用默认构造函数,不指定插件类型,将默认为通用插件
BasePlugin: plugin.NewBasePluginWithDefaultType(
"StatsPlugin",
"1.0.0",
"系统运行时统计插件",
"开发者",
plugin.PluginTypeUtils, // 设置为工具类插件
),
stats: make(map[string]int64),
tickerStop: make(chan bool),
}
// 为展示如何指定类型,我们也可以显式设置插件类型
// var Plugin = &StatsPlugin{
// BasePlugin: plugin.NewBasePlugin(
// "StatsPlugin",
// "1.0.0",
// "系统运行时统计插件",
// "开发者",
// plugin.PluginTypeUtils, // 明确指定为工具类插件
// ),
// stats: make(map[string]int64),
// tickerStop: make(chan bool),
// }
// Init 初始化插件
func (p *StatsPlugin) Init(ctx context.Context, config map[string]interface{}) error {
p.config = config