impl

package
v0.0.0-...-83979ee Latest Latest
Warning

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

Go to latest
Published: Aug 22, 2025 License: MIT Imports: 15 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type PluginDiscoveryInfo

type PluginDiscoveryInfo struct {
	*PluginInfo         // 嵌入插件基本信息
	Path         string `json:"path"`          // 插件路径
	IsRegistered bool   `json:"is_registered"` // 是否已注册
}

PluginDiscoveryInfo 插件发现信息

type PluginInfo

type PluginInfo struct {
	// 基本信息
	ID          string `json:"id"`                    // 插件唯一标识
	Name        string `json:"name"`                  // 插件显示名称
	Version     string `json:"version"`               // 插件版本号
	Author      string `json:"author"`                // 插件作者
	Description string `json:"description,omitempty"` // 插件描述
	Repository  string `json:"repository"`            // 插件仓库地址
	Binary      string `json:"binary"`                // 二进制文件路径
	Type        string `json:"type"`                  // 插件类型(provider/filter/handler/notifier)

	// 配置信息
	AutoStart    bool  `json:"auto_start"`              // 是否自动启动
	StartTimeout int64 `json:"start_timeout,omitempty"` // 启动超时(毫秒)
	MinPort      uint  `json:"min_port,omitempty"`      // 最小端口
	MaxPort      uint  `json:"max_port,omitempty"`      // 最大端口
	AutoMTLS     bool  `json:"auto_mtls,omitempty"`     // 是否启用自动 MTLS
	Managed      bool  `json:"managed,omitempty"`       // 是否为托管模式

	// 运行时信息
	Status            string `json:"status"`                       // 当前状态
	StartedAt         int64  `json:"started_at,omitempty"`         // 启动时间戳
	ProcessID         string `json:"process_id,omitempty"`         // 进程标识
	Protocol          string `json:"protocol,omitempty"`           // 通信协议
	IsExited          bool   `json:"is_exited,omitempty"`          // 是否已退出
	NegotiatedVersion int    `json:"negotiated_version,omitempty"` // 协商的协议版本
	ProcessPID        int    `json:"process_pid,omitempty"`        // 系统进程 PID
	ProtocolVersion   int    `json:"protocol_version,omitempty"`   // 协议版本
	NetworkAddr       string `json:"network_addr,omitempty"`       // 网络地址
}

PluginInfo 插件元数据和运行时信息

type PluginManagerImpl

type PluginManagerImpl struct {
	// contains filtered or unexported fields
}

PluginManagerImpl 插件管理器实现

func NewPluginManager

func NewPluginManager() *PluginManagerImpl

NewPluginManager 创建插件管理器实例

func (*PluginManagerImpl) ExecutePlugin

func (m *PluginManagerImpl) ExecutePlugin(ctx context.Context, id, method string, args map[string]any) (map[string]any, error)

ExecutePlugin 执行插件方法

func (*PluginManagerImpl) GetPlugin

func (m *PluginManagerImpl) GetPlugin(id string) (*PluginInfo, error)

GetPlugin 获取插件信息

func (*PluginManagerImpl) ListPlugins

func (m *PluginManagerImpl) ListPlugins() ([]*PluginDiscoveryInfo, error)

ListPlugins 列出所有插件(包括已注册和未注册的)

func (*PluginManagerImpl) RegisterPlugin

func (m *PluginManagerImpl) RegisterPlugin(id string) error

RegisterPlugin 注册并启动插件

func (*PluginManagerImpl) Shutdown

func (m *PluginManagerImpl) Shutdown()

Shutdown 关闭所有插件

func (*PluginManagerImpl) StartAutoPlugins

func (m *PluginManagerImpl) StartAutoPlugins() error

StartAutoPlugins 扫描并启动配置为自动启动的插件

func (*PluginManagerImpl) UnregisterPlugin

func (m *PluginManagerImpl) UnregisterPlugin(id string) error

UnregisterPlugin 注销并停止插件

Jump to

Keyboard shortcuts

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