infra

package
v2.2.0+incompatible Latest Latest
Warning

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

Go to latest
Published: Aug 23, 2019 License: Apache-2.0 Imports: 2 Imported by: 503

Documentation

Overview

Package infra provides Plugin interface and related utilities.

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