plugins

package
v1.0.9 Latest Latest
Warning

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

Go to latest
Published: Aug 19, 2025 License: LGPL-3.0 Imports: 17 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Manager

type Manager struct {
	Type    string                 // 管理器处理的插件类型的id, 如protocol, notice
	Glob    string                 // 全局的插件文件名
	Path    string                 // 插件路径
	Plugins map[string]*PluginInfo // 插件信息列表
	// contains filtered or unexported fields
}

Manager 插件管理器, 为不同类型的插件,管理的生命周期

func NewManager

func NewManager(ptype, glob, dir string, pluginImpl plugin.Plugin) *Manager

NewManager 创建插件管理器

func (*Manager) AddPlugin

func (m *Manager) AddPlugin(Type string, id string) (err error)

AddPlugin 添加一个插件

func (*Manager) Dispose

func (m *Manager) Dispose()

Dispose 释放插件资源

func (*Manager) GetInterface

func (m *Manager) GetInterface(id string) (interface{}, error)

GetInterface 获取插件接口

func (*Manager) Init

func (m *Manager) Init() error

Init 初始化插件管理器

func (*Manager) Launch

func (m *Manager) Launch() error

Launch 启动所有插件

func (*Manager) RemovePlugin

func (m *Manager) RemovePlugin(id string) (err error)

RemovePlugin 移除一个插件

func (*Manager) StartPlugin

func (m *Manager) StartPlugin(id string) (err error)

StartPlugin 启用一个插件

func (*Manager) StopPlugin

func (m *Manager) StopPlugin(id string) (err error)

StopPlugin 停用一个插件

type PluginInfo

type PluginInfo struct {
	ID     string
	Path   string
	Stats  bool
	Client *plugin.Client
}

PluginInfo 插件信息

type SysPlugin

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

func GetNoticePlugin

func GetNoticePlugin() *SysPlugin

GetNoticePlugin 获取通知插件

func GetPlugin

func GetPlugin(pluginType string) *SysPlugin

GetPlugin 构造方法

func GetProtocolPlugin

func GetProtocolPlugin() *SysPlugin

GetProtocolPlugin 获取协议插件

func (*SysPlugin) GetNoticeByName

func (pm *SysPlugin) GetNoticeByName(noticeName string) (obj module.Notice, err error)

GetNoticeByName 获取指定通知名称的插件

func (*SysPlugin) GetProtocolByName

func (pm *SysPlugin) GetProtocolByName(protocolName string) (obj module.Protocol, err error)

GetProtocolByName 获取指定协议名称的插件

func (*SysPlugin) GetProtocolDecodeData

func (pm *SysPlugin) GetProtocolDecodeData(protocolName string, data []byte) (res model.JsonRes, err error)

GetProtocolDecodeData 通过协议解析插件处理后,获取解析数据。protocolType 为协议名称

func (*SysPlugin) GetProtocolEncodeData

func (pm *SysPlugin) GetProtocolEncodeData(protocolName string, reqData model.DataReq) (res model.JsonRes, err error)

GetProtocolEncodeData 通过协议插件进行编码Encode处理后,获取下发的编码后的数据。protocolType 为协议名称

func (*SysPlugin) NoticeSend

func (pm *SysPlugin) NoticeSend(noticeName string, msg model.NoticeInfoData) (res model.JsonRes, err error)

NoticeSend 通过插件发送通知信息。noticeName 为通知插件名称;msg为通知内容

func (*SysPlugin) StartPlugin

func (pm *SysPlugin) StartPlugin(pluginId string) (err error)

StartPlugin 启动插件

func (*SysPlugin) StopPlugin

func (pm *SysPlugin) StopPlugin(pluginId string) (err error)

StopPlugin 启动插件

Directories

Path Synopsis
consts

Jump to

Keyboard shortcuts

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