Documentation
¶
Index ¶
- type DependencyInjector
- func (i *DependencyInjector) Clear()
- func (i *DependencyInjector) GetService(name string) (interface{}, error)
- func (i *DependencyInjector) Inject(target interface{}) error
- func (i *DependencyInjector) InjectByName(target interface{}, fieldName string, serviceName string) error
- func (i *DependencyInjector) InjectMethod(target interface{}, methodName string, args ...interface{}) ([]reflect.Value, error)
- func (i *DependencyInjector) RegisterFactory(name string, factory Factory) error
- func (i *DependencyInjector) RegisterService(name string, service interface{}) error
- type DependencyManager
- func (m *DependencyManager) CheckDependencies(pluginID string) ([]string, error)
- func (m *DependencyManager) GetAllPlugins() []string
- func (m *DependencyManager) GetDependencyGraph() map[string][]string
- func (m *DependencyManager) GetDependencyOrder() ([]string, error)
- func (m *DependencyManager) GetDependents(pluginID string) []string
- func (m *DependencyManager) GetPluginDependencies(pluginID string) ([]api.PluginDependency, error)
- func (m *DependencyManager) GetPluginVersion(pluginID string) (string, error)
- func (m *DependencyManager) GetVersionMap() map[string]string
- func (m *DependencyManager) RegisterPlugin(pluginID string, version string, dependencies []api.PluginDependency) error
- func (m *DependencyManager) UnregisterPlugin(pluginID string) error
- type DependencyResolver
- func (r *DependencyResolver) Clear()
- func (r *DependencyResolver) GetAllResolvedPlugins() map[string]api.Plugin
- func (r *DependencyResolver) GetPluginService(serviceName string) (interface{}, error)
- func (r *DependencyResolver) GetResolvedPlugin(pluginID string) (api.Plugin, bool)
- func (r *DependencyResolver) InjectPluginDependencies(target interface{}) error
- func (r *DependencyResolver) InjectPluginMethod(target interface{}, methodName string, args ...interface{}) ([]interface{}, error)
- func (r *DependencyResolver) RegisterPluginFactory(pluginID string, serviceName string, factory Factory) error
- func (r *DependencyResolver) RegisterPluginService(pluginID string, serviceName string, service interface{}) error
- func (r *DependencyResolver) ResolveAllPluginDependencies() error
- func (r *DependencyResolver) ResolvePluginDependencies(pluginID string) error
- type Factory
- type PluginProvider
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type DependencyInjector ¶
type DependencyInjector struct {
// contains filtered or unexported fields
}
DependencyInjector 依赖注入器 负责注入插件依赖
func NewDependencyInjector ¶
func NewDependencyInjector(logger hclog.Logger) *DependencyInjector
NewDependencyInjector 创建一个新的依赖注入器
func (*DependencyInjector) GetService ¶
func (i *DependencyInjector) GetService(name string) (interface{}, error)
GetService 获取服务
func (*DependencyInjector) Inject ¶
func (i *DependencyInjector) Inject(target interface{}) error
Inject 注入依赖
func (*DependencyInjector) InjectByName ¶
func (i *DependencyInjector) InjectByName(target interface{}, fieldName string, serviceName string) error
InjectByName 按名称注入依赖
func (*DependencyInjector) InjectMethod ¶
func (i *DependencyInjector) InjectMethod(target interface{}, methodName string, args ...interface{}) ([]reflect.Value, error)
InjectMethod 注入方法参数
func (*DependencyInjector) RegisterFactory ¶
func (i *DependencyInjector) RegisterFactory(name string, factory Factory) error
RegisterFactory 注册工厂
func (*DependencyInjector) RegisterService ¶
func (i *DependencyInjector) RegisterService(name string, service interface{}) error
RegisterService 注册服务
type DependencyManager ¶
type DependencyManager struct {
// contains filtered or unexported fields
}
DependencyManager 依赖管理器 负责管理插件之间的依赖关系
func NewDependencyManager ¶
func NewDependencyManager(logger hclog.Logger) *DependencyManager
NewDependencyManager 创建一个新的依赖管理器
func (*DependencyManager) CheckDependencies ¶
func (m *DependencyManager) CheckDependencies(pluginID string) ([]string, error)
CheckDependencies 检查依赖
func (*DependencyManager) GetAllPlugins ¶
func (m *DependencyManager) GetAllPlugins() []string
GetAllPlugins 获取所有插件
func (*DependencyManager) GetDependencyGraph ¶
func (m *DependencyManager) GetDependencyGraph() map[string][]string
GetDependencyGraph 获取依赖图
func (*DependencyManager) GetDependencyOrder ¶
func (m *DependencyManager) GetDependencyOrder() ([]string, error)
GetDependencyOrder 获取依赖顺序
func (*DependencyManager) GetDependents ¶
func (m *DependencyManager) GetDependents(pluginID string) []string
GetDependents 获取依赖于指定插件的插件
func (*DependencyManager) GetPluginDependencies ¶
func (m *DependencyManager) GetPluginDependencies(pluginID string) ([]api.PluginDependency, error)
GetPluginDependencies 获取插件依赖
func (*DependencyManager) GetPluginVersion ¶
func (m *DependencyManager) GetPluginVersion(pluginID string) (string, error)
GetPluginVersion 获取插件版本
func (*DependencyManager) GetVersionMap ¶
func (m *DependencyManager) GetVersionMap() map[string]string
GetVersionMap 获取版本映射
func (*DependencyManager) RegisterPlugin ¶
func (m *DependencyManager) RegisterPlugin(pluginID string, version string, dependencies []api.PluginDependency) error
RegisterPlugin 注册插件
func (*DependencyManager) UnregisterPlugin ¶
func (m *DependencyManager) UnregisterPlugin(pluginID string) error
UnregisterPlugin 注销插件
type DependencyResolver ¶
type DependencyResolver struct {
// contains filtered or unexported fields
}
DependencyResolver 依赖解析器 负责解析插件依赖
func NewDependencyResolver ¶
func NewDependencyResolver(manager *DependencyManager, injector *DependencyInjector, provider PluginProvider, logger hclog.Logger) *DependencyResolver
NewDependencyResolver 创建一个新的依赖解析器
func (*DependencyResolver) GetAllResolvedPlugins ¶
func (r *DependencyResolver) GetAllResolvedPlugins() map[string]api.Plugin
GetAllResolvedPlugins 获取所有已解析的插件
func (*DependencyResolver) GetPluginService ¶
func (r *DependencyResolver) GetPluginService(serviceName string) (interface{}, error)
GetPluginService 获取插件服务
func (*DependencyResolver) GetResolvedPlugin ¶
func (r *DependencyResolver) GetResolvedPlugin(pluginID string) (api.Plugin, bool)
GetResolvedPlugin 获取已解析的插件
func (*DependencyResolver) InjectPluginDependencies ¶
func (r *DependencyResolver) InjectPluginDependencies(target interface{}) error
InjectPluginDependencies 注入插件依赖
func (*DependencyResolver) InjectPluginMethod ¶
func (r *DependencyResolver) InjectPluginMethod(target interface{}, methodName string, args ...interface{}) ([]interface{}, error)
InjectPluginMethod 注入插件方法参数
func (*DependencyResolver) RegisterPluginFactory ¶
func (r *DependencyResolver) RegisterPluginFactory(pluginID string, serviceName string, factory Factory) error
RegisterPluginFactory 注册插件工厂
func (*DependencyResolver) RegisterPluginService ¶
func (r *DependencyResolver) RegisterPluginService(pluginID string, serviceName string, service interface{}) error
RegisterPluginService 注册插件服务
func (*DependencyResolver) ResolveAllPluginDependencies ¶
func (r *DependencyResolver) ResolveAllPluginDependencies() error
ResolveAllPluginDependencies 解析所有插件依赖
func (*DependencyResolver) ResolvePluginDependencies ¶
func (r *DependencyResolver) ResolvePluginDependencies(pluginID string) error
ResolvePluginDependencies 解析插件依赖