Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type FingerprintingPluginManager ¶
type FingerprintingPluginManager interface { PluginManager // WaitForFirstFingerprint returns a channel that is closed once all plugin // instances managed by the plugin manager have fingerprinted once. A // context can be passed which when done will also close the channel WaitForFirstFingerprint(context.Context) <-chan struct{} }
FingerprintingPluginManager is an interface that exposes fingerprinting coordination for plugin managers
type MockPluginManager ¶
type MockPluginManager struct { RunF func() ShutdownF func() }
func (*MockPluginManager) PluginType ¶
func (m *MockPluginManager) PluginType() string
func (*MockPluginManager) Run ¶
func (m *MockPluginManager) Run()
func (*MockPluginManager) Shutdown ¶
func (m *MockPluginManager) Shutdown()
type PluginGroup ¶
type PluginGroup struct {
// contains filtered or unexported fields
}
PluginGroup is a utility struct to manage a collectively orchestrate a set of PluginManagers
func (*PluginGroup) RegisterAndRun ¶
func (m *PluginGroup) RegisterAndRun(manager PluginManager) error
RegisterAndRun registers the manager and starts it in a separate goroutine
func (*PluginGroup) Shutdown ¶
func (m *PluginGroup) Shutdown()
Shutdown shutsdown all registered PluginManagers in reverse order of how they were started.
func (*PluginGroup) WaitForFirstFingerprint ¶
func (m *PluginGroup) WaitForFirstFingerprint(ctx context.Context) (<-chan struct{}, error)
Ready returns a channel which will be closed once all plugin managers are ready. A timeout for waiting on each manager is given
type PluginManager ¶
type PluginManager interface { // Run starts a plugin manager and should return early Run() // Shutdown should gracefully shutdown all plugins managed by the manager. // It must block until shutdown is complete Shutdown() // PluginType is the type of plugin which the manager manages PluginType() string }
PluginManager orchestrates the lifecycle of a set of plugins
Click to show internal directories.
Click to hide internal directories.