Documentation
¶
Index ¶
- Variables
- type Details
- type Option
- func WithExtensionNewer(newExt func() interface{}) Option
- func WithFreeDelay(d time.Duration) Option
- func WithLogger(log slog.Logger) Option
- func WithReloadCallback(cb ReloadCallback) Option
- func WithStaticPlugins(plugins map[string]*StaticPlugin) Option
- func WithWhitelist(pluginNames ...string) Option
- type Plugin
- type PluginFuncs
- type PluginManager
- type PluginManagerSwapper
- func (sw *PluginManagerSwapper) Current() *PluginManager
- func (sw *PluginManagerSwapper) LoadPlugins(data interface{}) (Details, error)
- func (sw *PluginManagerSwapper) Reload(data interface{}) (Details, error)
- func (sw *PluginManagerSwapper) ReloadCounter() int64
- func (sw *PluginManagerSwapper) ReloadWithCallback(data interface{}, extra ReloadCallback) (Details, error)
- func (sw *PluginManagerSwapper) StaticLinkingMode() bool
- type ReloadCallback
- type StaticPlugin
Constants ¶
This section is empty.
Variables ¶
View Source
var (
ErrNotExist = errors.New("symbol does not exist")
)
Functions ¶
This section is empty.
Types ¶
type Option ¶
type Option func(mgr *PluginManagerSwapper)
func WithExtensionNewer ¶
func WithExtensionNewer(newExt func() interface{}) Option
WithExtensionNewer sets the function used to create a new object for PluginManager.Vault.Extension.
func WithFreeDelay ¶
WithFreeDelay sets the delay time of calling OnFree. The default value is 5 minutes.
func WithLogger ¶
WithLogger replaces the default logger with your own.
func WithReloadCallback ¶
func WithReloadCallback(cb ReloadCallback) Option
WithReloadCallback sets the callback function of reloading.
func WithStaticPlugins ¶
func WithStaticPlugins(plugins map[string]*StaticPlugin) Option
WithStaticPlugins sets the static plugins for static linking.
func WithWhitelist ¶
WithWhitelist sets the plugins to load explicitly
type Plugin ¶
type PluginFuncs ¶
type PluginFuncs struct { InvokeFunc func(name string, params ...interface{}) (interface{}, error) // contains filtered or unexported fields }
func NewPluginFuncs ¶
func NewPluginFuncs( fExport func() interface{}, hotswapLiveFuncs func() map[string]interface{}, hotswapLiveTypes func() map[string]func() interface{}, fImport func() interface{}, InvokeFunc func(name string, params ...interface{}) (interface{}, error), fOnFree func(), fOnInit func(sharedVault *vault.Vault) error, fOnLoad func(data interface{}) error, fReloadable func() bool, ) PluginFuncs
type PluginManager ¶
func (*PluginManager) FindPlugin ¶
func (pm *PluginManager) FindPlugin(name string) *Plugin
func (*PluginManager) InvokeEach ¶
func (pm *PluginManager) InvokeEach(name string, params ...interface{})
func (*PluginManager) InvokeEachBackward ¶
func (pm *PluginManager) InvokeEachBackward(name string, params ...interface{})
func (*PluginManager) Plugins ¶
func (pm *PluginManager) Plugins() []*Plugin
type PluginManagerSwapper ¶
func NewPluginManagerSwapper ¶
func NewPluginManagerSwapper(pluginDir string, opts ...Option) *PluginManagerSwapper
func (*PluginManagerSwapper) Current ¶
func (sw *PluginManagerSwapper) Current() *PluginManager
func (*PluginManagerSwapper) LoadPlugins ¶
func (sw *PluginManagerSwapper) LoadPlugins(data interface{}) (Details, error)
func (*PluginManagerSwapper) Reload ¶
func (sw *PluginManagerSwapper) Reload(data interface{}) (Details, error)
func (*PluginManagerSwapper) ReloadCounter ¶
func (sw *PluginManagerSwapper) ReloadCounter() int64
func (*PluginManagerSwapper) ReloadWithCallback ¶
func (sw *PluginManagerSwapper) ReloadWithCallback(data interface{}, extra ReloadCallback) (Details, error)
func (*PluginManagerSwapper) StaticLinkingMode ¶
func (sw *PluginManagerSwapper) StaticLinkingMode() bool
type ReloadCallback ¶
type ReloadCallback func(newManager, oldManager *PluginManager) error
type StaticPlugin ¶
type StaticPlugin struct { Name string PluginFuncs }
Source Files
¶
Click to show internal directories.
Click to hide internal directories.