infra

package
v2.0.0+incompatible Latest Latest
Warning

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

Go to latest
Published: Apr 2, 2019 License: Apache-2.0 Imports: 2 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Plugin

type Plugin interface {
	// Init is called in the agent`s startup phase.
	Init() error
	// Close is called in the agent`s cleanup phase.
	Close() error
	// String returns unique name of the plugin.
	String() string
}

Plugin interface defines plugin's basic life-cycle methods.

type PluginDeps

type PluginDeps struct {
	PluginName
	Log logging.PluginLogger
	Cfg config.PluginConfig
}

PluginDeps defines common dependencies for use with plugins. It can easily be embedded in Deps for Plugin:

type Deps struct {
    infra.PluginDeps
    // other dependencies
}

func (*PluginDeps) Close

func (d *PluginDeps) Close() error

Close is an empty implementation used to avoid need for implementing it by plugins that do not need it.

func (*PluginDeps) Setup

func (d *PluginDeps) Setup()

Setup sets up default instances for plugin deps.

func (*PluginDeps) SetupLog

func (d *PluginDeps) SetupLog()

SetupLog sets up default instance for plugin log dep.

type PluginName

type PluginName string

PluginName is a part of the plugin's API. It's used by embedding it into Plugin to provide unique name of the plugin.

func (*PluginName) SetName

func (name *PluginName) SetName(n string)

SetName sets plugin name.

func (PluginName) String

func (name PluginName) String() string

String returns the PluginName.

type PostInit

type PostInit interface {
	// AfterInit is called once Init() of all plugins have returned without error.
	AfterInit() error
}

PostInit interface defines an optional method for plugins with additional initialization.

Jump to

Keyboard shortcuts

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