Documentation
¶
Overview ¶
Package extension 插件系统,用于扩展服务或运行时能力,例如服务发现、消息队列与日志系统等。
- 插件主要以组合方式安装在服务或运行时上下文上,用于扩展服务或运行时能力。
- 服务与运行时上下文均支持安装插件,注意服务上的插件需要支持多线程环境,运行时上的插件仅需支持单线程环境即可。
Index ¶
- Variables
- func Install[T any](provider AddInProvider, addIn T, name ...string)
- func Uninstall(provider AddInProvider, name string)
- func UnsafeAddInManager(addInManager AddInManager) _UnsafeAddInManagerdeprecated
- func UnsafeAddInStatus(status AddInStatus) _UnsafeAddInStatusdeprecated
- func Using[T any](provider AddInProvider, name string) T
- type AddInManager
- type AddInProvider
- type AddInState
- type AddInStatus
Constants ¶
This section is empty.
Variables ¶
View Source
var (
ErrExtension = fmt.Errorf("%w: extension", exception.ErrCore) // 插件系统错误
)
Functions ¶
func UnsafeAddInManager
deprecated
added in
v0.3.66
func UnsafeAddInManager(addInManager AddInManager) _UnsafeAddInManager
Deprecated: UnsafeAddInManager 访问插件管理器的内部方法
func UnsafeAddInStatus
deprecated
added in
v0.3.66
func UnsafeAddInStatus(status AddInStatus) _UnsafeAddInStatus
Deprecated: UnsafeAddInStatus 访问插件状态信息的内部方法
Types ¶
type AddInManager ¶ added in v0.3.66
type AddInManager interface {
AddInProvider
// Install 安装插件,不设置插件名称时,将会使用插件实例名称作为插件名称
Install(addInFace iface.FaceAny, name ...string)
// Uninstall 卸载插件
Uninstall(name string)
// Get 获取插件
Get(name string) (AddInStatus, bool)
// Range 遍历所有已注册的插件
Range(fun generic.Func1[AddInStatus, bool])
// ReversedRange 反向遍历所有已注册的插件
ReversedRange(fun generic.Func1[AddInStatus, bool])
// contains filtered or unexported methods
}
AddInManager 插件管理器
type AddInProvider ¶ added in v0.3.66
type AddInProvider interface {
// GetAddInManager 获取插件管理器
GetAddInManager() AddInManager
}
AddInProvider 插件提供者
type AddInState ¶ added in v0.3.66
type AddInState int8
AddInState 插件状态
const ( AddInState_Loaded AddInState = iota // 已加载 AddInState_Active // 已激活 AddInState_Inactive // 未激活 )
func (AddInState) String ¶ added in v0.3.66
func (i AddInState) String() string
type AddInStatus ¶ added in v0.3.66
type AddInStatus interface {
// Name 插件名称
Name() string
// InstanceFace 插件实例
InstanceFace() iface.FaceAny
// Reflected 插件反射值
Reflected() reflect.Value
// State 状态
State() AddInState
// contains filtered or unexported methods
}
AddInStatus 插件状态信息
Click to show internal directories.
Click to hide internal directories.