Documentation ¶
Overview ¶
Package instancemgmt provides utilities for managing plugin instances.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type CachedInstance ¶
type CachedInstance struct { PluginContext backend.PluginContext // contains filtered or unexported fields }
CachedInstance a cached Instance.
type InstanceCallbackFunc ¶
type InstanceCallbackFunc interface{}
InstanceCallbackFunc defines the callback function of the InstanceManager.Do method. The argument provided will of type Instance.
type InstanceDisposer ¶
type InstanceDisposer interface {
Dispose()
}
InstanceDisposer is implemented by an Instance that has a Dispose method, which defines that the instance is disposable.
InstanceManager will call the Dispose method before an Instance is replaced with a new Instance. This allows an Instance to clean up resources in use, if any.
type InstanceManager ¶
type InstanceManager interface { // Get returns an Instance. // // If Instance is cached and not updated it's returned. If Instance is not cached or // updated, a new Instance is created and cached before returned. Get(ctx context.Context, pluginContext backend.PluginContext) (Instance, error) // Do provides an Instance as argument to fn. // // If Instance is cached and not updated provides as argument to fn. If Instance is not cached or // updated, a new Instance is created and cached before provided as argument to fn. Do(ctx context.Context, pluginContext backend.PluginContext, fn InstanceCallbackFunc) error }
InstanceManager manages the lifecycle of instances.
type InstanceProvider ¶
type InstanceProvider interface { // GetKey returns a cache key to be used for caching an Instance. GetKey(ctx context.Context, pluginContext backend.PluginContext) (interface{}, error) // NeedsUpdate returns whether a cached Instance have been updated. NeedsUpdate(ctx context.Context, pluginContext backend.PluginContext, cachedInstance CachedInstance) bool // NewInstance creates a new Instance. NewInstance(ctx context.Context, pluginContext backend.PluginContext) (Instance, error) }
InstanceProvider defines an instance provider, providing instances.