buffer

package
v0.9.5 Latest Latest
Warning

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

Go to latest
Published: Mar 8, 2018 License: MIT Imports: 11 Imported by: 0

Documentation

Overview

Package buffer links an input and an output together and buffers messages in between.

Index

Constants

This section is empty.

Variables

View Source
var Constructors = map[string]TypeSpec{}

Constructors is a map of all buffer types with their specs.

Functions

func Descriptions

func Descriptions() string

Descriptions returns a formatted string of collated descriptions of each type.

func SanitiseConfig

func SanitiseConfig(conf Config) (interface{}, error)

SanitiseConfig returns a sanitised version of the Config, meaning sections that aren't relevant to behaviour are removed.

Types

type Config

type Config struct {
	Type   string                `json:"type" yaml:"type"`
	Memory impl.MemoryConfig     `json:"memory" yaml:"memory"`
	Mmap   impl.MmapBufferConfig `json:"mmap_file" yaml:"mmap_file"`
	None   struct{}              `json:"none" yaml:"none"`
}

Config is the all encompassing configuration struct for all input types.

func NewConfig

func NewConfig() Config

NewConfig returns a configuration struct fully populated with default values.

type Empty

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

Empty is an empty buffer, simply forwards messages on directly.

func (*Empty) CloseAsync

func (e *Empty) CloseAsync()

CloseAsync shuts down the StackBuffer output and stops processing messages.

func (*Empty) ErrorsChan

func (e *Empty) ErrorsChan() <-chan []error

ErrorsChan returns the errors channel.

func (*Empty) StartReceiving

func (e *Empty) StartReceiving(msgs <-chan types.Transaction) error

StartReceiving assigns a messages channel for the output to read.

func (*Empty) TransactionChan

func (e *Empty) TransactionChan() <-chan types.Transaction

TransactionChan returns the channel used for consuming messages from this input.

func (*Empty) WaitForClose

func (e *Empty) WaitForClose(timeout time.Duration) error

WaitForClose blocks until the StackBuffer output has closed down.

type OutputWrapper

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

OutputWrapper wraps a buffer with a Producer/Consumer interface.

func (*OutputWrapper) CloseAsync

func (m *OutputWrapper) CloseAsync()

CloseAsync shuts down the OutputWrapper and stops processing messages.

func (*OutputWrapper) ErrorsChan

func (m *OutputWrapper) ErrorsChan() <-chan []error

ErrorsChan returns the errors channel.

func (*OutputWrapper) StartReceiving

func (m *OutputWrapper) StartReceiving(msgs <-chan types.Transaction) error

StartReceiving assigns a messages channel for the output to read.

func (*OutputWrapper) TransactionChan

func (m *OutputWrapper) TransactionChan() <-chan types.Transaction

TransactionChan returns the channel used for consuming messages from this input.

func (*OutputWrapper) WaitForClose

func (m *OutputWrapper) WaitForClose(timeout time.Duration) error

WaitForClose blocks until the OutputWrapper output has closed down.

type Type

type Type interface {
	types.Producer
	types.Consumer
	types.Closable

	// ErrorsChan returns the channel used for returning any accumulated errors.
	// This needs reading in the same select block where messages are sent as
	// the errors can occur at any time.
	ErrorsChan() <-chan []error
}

Type is the standard interface of an agent type.

func New

func New(conf Config, log log.Modular, stats metrics.Type) (Type, error)

New creates an input type based on an input configuration.

func NewEmpty

func NewEmpty(config Config, log log.Modular, stats metrics.Type) (Type, error)

NewEmpty creates a new buffer interface but doesn't buffer messages.

func NewMemory

func NewMemory(config Config, log log.Modular, stats metrics.Type) (Type, error)

NewMemory - Create a buffer held in memory.

func NewMmapFile

func NewMmapFile(config Config, log log.Modular, stats metrics.Type) (Type, error)

NewMmapFile creates a buffer held in memory and persisted to file through memory map.

func NewOutputWrapper

func NewOutputWrapper(
	conf Config,
	buffer impl.Buffer,
	stats metrics.Type,
) Type

NewOutputWrapper creates a new Producer/Consumer around a buffer.

type TypeSpec

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

TypeSpec is a constructor and usage description for each buffer type.

Directories

Path Synopsis
Package impl contains implementations of various buffer types.
Package impl contains implementations of various buffer types.

Jump to

Keyboard shortcuts

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