extension

package
v0.3.72 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 26, 2024 License: LGPL-2.1 Imports: 11 Imported by: 4

Documentation

Overview

Package extension 插件系统,用于扩展服务或运行时能力,例如服务发现、消息队列与日志系统等。

  • 插件主要以组合方式安装在服务或运行时上下文上,用于扩展服务或运行时能力。
  • 服务与运行时上下文均支持安装插件,注意服务上的插件需要支持多线程环境,运行时上的插件仅需支持单线程环境即可。

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrExtension = fmt.Errorf("%w: extension", exception.ErrCore) // 插件系统错误
)

Functions

func Install

func Install[T any](provider AddInProvider, addIn T, name ...string)

Install 安装插件

func Uninstall

func Uninstall(provider AddInProvider, name string)

Uninstall 卸载插件

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 访问插件状态信息的内部方法

func Using

func Using[T any](provider AddInProvider, name string) T

Using 使用插件

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 插件管理器

func NewAddInManager added in v0.3.66

func NewAddInManager() AddInManager

NewAddInManager 创建插件管理器

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 插件状态信息

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL