增强插件系统:优化插件管理和动态插件实现
- 在插件管理器中引入 DynamicPlugin 结构体,支持动态加载和管理插件,提升插件的灵活性和可扩展性。 - 更新插件接口,添加插件名称、版本、描述、作者、类型和启用状态的获取和设置方法,增强插件信息的管理能力。 - 修改现有插件实现,确保兼容新的动态插件结构,提升插件的统一性和可维护性。 - 更新示例程序,展示如何使用新的动态插件功能,提升用户体验。 此更新提升了插件系统的灵活性和可扩展性,便于开发者更好地管理和使用插件功能。
This commit is contained in:
@@ -14,22 +14,72 @@ import (
|
||||
// StoragePlugin 存储插件
|
||||
// 提供简单的文件存储功能
|
||||
type StoragePlugin struct {
|
||||
*plugin.BasePlugin // 嵌入基本插件结构
|
||||
storageDir string // 存储目录
|
||||
config map[string]interface{} // 配置
|
||||
mu sync.RWMutex // 读写锁
|
||||
plugin.Plugin // 嵌入接口,确保类型检查
|
||||
name string // 插件名称
|
||||
version string // 插件版本
|
||||
description string // 插件描述
|
||||
author string // 插件作者
|
||||
pluginType plugin.PluginType // 插件类型
|
||||
enabled bool // 是否启用
|
||||
storageDir string // 存储目录
|
||||
config map[string]interface{} // 配置
|
||||
mu sync.RWMutex // 读写锁
|
||||
}
|
||||
|
||||
// Plugin 导出的插件变量
|
||||
// 注意:变量名必须是Plugin,大小写敏感
|
||||
var Plugin = &StoragePlugin{
|
||||
BasePlugin: plugin.NewBasePlugin(
|
||||
"StoragePlugin",
|
||||
"1.0.0",
|
||||
"简单的文件存储插件",
|
||||
"开发者",
|
||||
plugin.PluginTypeStorage, // 设置插件类型为存储插件
|
||||
),
|
||||
name: "StoragePlugin",
|
||||
version: "1.0.0",
|
||||
description: "简单的文件存储插件",
|
||||
author: "开发者",
|
||||
pluginType: plugin.PluginTypeStorage, // 设置插件类型为存储插件
|
||||
enabled: true,
|
||||
}
|
||||
|
||||
// Name 返回插件名称
|
||||
func (p *StoragePlugin) Name() string {
|
||||
return p.name
|
||||
}
|
||||
|
||||
// Version 返回插件版本
|
||||
func (p *StoragePlugin) Version() string {
|
||||
return p.version
|
||||
}
|
||||
|
||||
// Description 返回插件描述
|
||||
func (p *StoragePlugin) Description() string {
|
||||
return p.description
|
||||
}
|
||||
|
||||
// Author 返回插件作者
|
||||
func (p *StoragePlugin) Author() string {
|
||||
return p.author
|
||||
}
|
||||
|
||||
// Type 返回插件类型
|
||||
func (p *StoragePlugin) Type() plugin.PluginType {
|
||||
return p.pluginType
|
||||
}
|
||||
|
||||
// IsEnabled 返回插件是否启用
|
||||
func (p *StoragePlugin) IsEnabled() bool {
|
||||
return p.enabled
|
||||
}
|
||||
|
||||
// SetEnabled 设置插件启用状态
|
||||
func (p *StoragePlugin) SetEnabled(enabled bool) {
|
||||
p.enabled = enabled
|
||||
}
|
||||
|
||||
// GetOperationInfo 获取操作的参数信息
|
||||
func (p *StoragePlugin) GetOperationInfo(operation string) (map[string]interface{}, error) {
|
||||
return map[string]interface{}{}, nil
|
||||
}
|
||||
|
||||
// GetAllOperations 获取所有操作及其参数信息
|
||||
func (p *StoragePlugin) GetAllOperations() map[string]map[string]interface{} {
|
||||
return map[string]map[string]interface{}{}
|
||||
}
|
||||
|
||||
// Init 初始化插件
|
||||
|
Reference in New Issue
Block a user