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.