config

package
v0.0.0-...-4714bb5 Latest Latest
Warning

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

Go to latest
Published: Jan 10, 2017 License: Apache-2.0, Apache-2.0 Imports: 2 Imported by: 0

Documentation

Overview

Package config provides utility objects for decoupling sources of configuration and the actual configuration state. Consumers must implement the Merger interface to unify the sources of change into an object.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Accessor

type Accessor interface {
	// MergedState returns a representation of the current merge state.
	// Must be reentrant when more than one source is defined.
	MergedState() interface{}
}

Accessor is an interface for retrieving the current merge state.

type AccessorFunc

type AccessorFunc func() interface{}

AccessorFunc implements the Accessor interface.

func (AccessorFunc) MergedState

func (f AccessorFunc) MergedState() interface{}

type Broadcaster

type Broadcaster struct {
	// contains filtered or unexported fields
}

func NewBroadcaster

func NewBroadcaster() *Broadcaster

NewBroadcaster registers a set of listeners that support the Listener interface and notifies them all on changes.

func (*Broadcaster) Add

func (b *Broadcaster) Add(listener Listener)

Add registers listener to receive updates of changes.

func (*Broadcaster) Notify

func (b *Broadcaster) Notify(instance interface{})

Notify notifies all listeners.

type Listener

type Listener interface {
	// OnUpdate is invoked when a change is made to an object.
	OnUpdate(instance interface{})
}

type ListenerFunc

type ListenerFunc func(instance interface{})

ListenerFunc receives a representation of the change or object.

func (ListenerFunc) OnUpdate

func (f ListenerFunc) OnUpdate(instance interface{})

type MergeFunc

type MergeFunc func(source string, update interface{}) error

MergeFunc implements the Merger interface

func (MergeFunc) Merge

func (f MergeFunc) Merge(source string, update interface{}) error

type Merger

type Merger interface {
	// Invoked when a change from a source is received.  May also function as an incremental
	// merger if you wish to consume changes incrementally.  Must be reentrant when more than
	// one source is defined.
	Merge(source string, update interface{}) error
}

type Mux

type Mux struct {
	// contains filtered or unexported fields
}

Mux is a class for merging configuration from multiple sources. Changes are pushed via channels and sent to the merge function.

func NewMux

func NewMux(merger Merger) *Mux

NewMux creates a new mux that can merge changes from multiple sources.

func (*Mux) Channel

func (m *Mux) Channel(source string) chan interface{}

Channel returns a channel where a configuration source can send updates of new configurations. Multiple calls with the same source will return the same channel. This allows change and state based sources to use the same channel. Different source names however will be treated as a union.

Jump to

Keyboard shortcuts

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