impl

package
v0.2.8 Latest Latest
Warning

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

Go to latest
Published: Sep 23, 2017 License: MIT Imports: 11 Imported by: 0

Documentation

Overview

Package impl - Contains implementations of various buffer types.

Index

Constants

This section is empty.

Variables

View Source
var (
	// ErrWrongTrackerLength - The length of a read tracker was not correct.
	ErrWrongTrackerLength = errors.New("tracker was unexpected length")

	// ErrNotEnoughSpace - The target disk lacked the space needed for a new file.
	ErrNotEnoughSpace = errors.New("target disk is at capacity")
)

Functions

This section is empty.

Types

type Buffer

type Buffer interface {
	// ShiftMessage - Remove the oldest message from the stack. Returns the
	// backlog in bytes.
	ShiftMessage() (int, error)

	// NextMessage - Read the oldest message, the message is preserved until
	// ShiftMessage is called.
	NextMessage() (types.Message, error)

	// PushMessage - Add a new message to the stack. Returns the backlog in
	// bytes.
	PushMessage(types.Message) (int, error)

	// CloseOnceEmpty - Close the Buffer once the buffer has been emptied, this
	// is a way for a writer to signal to a reader that it is finished writing
	// messages, and therefore the reader can close once it is caught up. This
	// call blocks until the close is completed.
	CloseOnceEmpty()

	// Close - Close the Buffer so that blocked readers or writers become
	// unblocked.
	Close()
}

Buffer - Represents a method of storing messages.

type CachedMmap

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

CachedMmap - A struct containing a cached Mmap file and the file handler.

type Memory

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

Memory - A purely memory based ring buffer. This buffer blocks when the buffer is full.

func NewMemory

func NewMemory(config MemoryConfig) *Memory

NewMemory - Creates a new memory based ring buffer.

func (*Memory) Close

func (m *Memory) Close()

Close - Unblocks any blocked calls and prevents further writing to the block.

func (*Memory) CloseOnceEmpty

func (m *Memory) CloseOnceEmpty()

CloseOnceEmpty - Closes the memory buffer once the backlog reaches 0.

func (*Memory) NextMessage

func (m *Memory) NextMessage() (types.Message, error)

NextMessage - Reads the next message, this call blocks until there's something to read.

func (*Memory) PushMessage

func (m *Memory) PushMessage(msg types.Message) (int, error)

PushMessage - Pushes a new message onto the block, returns the backlog count.

func (*Memory) ShiftMessage

func (m *Memory) ShiftMessage() (int, error)

ShiftMessage - Removes the last message from the block. Returns the backlog count.

type MemoryConfig

type MemoryConfig struct {
	Limit int `json:"limit" yaml:"limit"`
}

MemoryConfig - Config values for a purely memory based ring buffer type.

func NewMemoryConfig

func NewMemoryConfig() MemoryConfig

NewMemoryConfig - Create a new MemoryConfig with default values.

type MmapBuffer

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

MmapBuffer - A buffer implemented around rotated memory mapped files.

func NewMmapBuffer

func NewMmapBuffer(config MmapBufferConfig, log log.Modular, stats metrics.Type) (*MmapBuffer, error)

NewMmapBuffer - Creates a memory-map based buffer.

func (*MmapBuffer) Close

func (f *MmapBuffer) Close()

Close - Unblocks any blocked calls and prevents further writing to the block.

func (*MmapBuffer) CloseOnceEmpty

func (f *MmapBuffer) CloseOnceEmpty()

CloseOnceEmpty - Closes the mmap buffer once the backlog reaches 0.

func (*MmapBuffer) NextMessage

func (f *MmapBuffer) NextMessage() (types.Message, error)

NextMessage - Reads the next message, blocks until there's something to read.

func (*MmapBuffer) PushMessage

func (f *MmapBuffer) PushMessage(msg types.Message) (int, error)

PushMessage - Pushes a new message, returns the backlog count.

func (*MmapBuffer) ShiftMessage

func (f *MmapBuffer) ShiftMessage() (int, error)

ShiftMessage - Removes the last message. Returns the backlog count.

type MmapBufferConfig

type MmapBufferConfig MmapCacheConfig

MmapBufferConfig - Config options for a memory-map based buffer reader.

func NewMmapBufferConfig

func NewMmapBufferConfig() MmapBufferConfig

NewMmapBufferConfig - Create a MmapBufferConfig oject with default values.

type MmapCache

type MmapCache struct {
	*sync.Cond
	// contains filtered or unexported fields
}

MmapCache - Keeps track of any Mmap files cached in memory and cleans up resources as they are unclaimed. This type works similarly to sync.Cond, where if you wish to use it you need to lock it.

func NewMmapCache

func NewMmapCache(config MmapCacheConfig, log log.Modular, stats metrics.Type) (*MmapCache, error)

NewMmapCache - Creates a cache for managing open mmap files.

func (*MmapCache) Delete

func (f *MmapCache) Delete(index int) error

Delete - Deletes the file for an index.

func (*MmapCache) EnsureCached

func (f *MmapCache) EnsureCached(index int) error

EnsureCached - Check that a particular index is cached, and if not then read the index, this call blocks until either the index is successfully cached or an error occurs.

func (*MmapCache) Get

func (f *MmapCache) Get(index int) []byte

Get - Returns the []byte from a memory mapped file index.

func (*MmapCache) GetTracker

func (f *MmapCache) GetTracker() []byte

GetTracker - Returns the []byte from the tracker file memory mapping.

func (*MmapCache) IsCached

func (f *MmapCache) IsCached(index int) bool

IsCached - Returns a bool indicating whether the current memory mapped file index is cached.

func (*MmapCache) Remove

func (f *MmapCache) Remove(index int) error

Remove - Removes the index from our cache, the file is NOT deleted.

func (*MmapCache) RemoveAll

func (f *MmapCache) RemoveAll() error

RemoveAll - Removes all indexes from the cache as well as the tracker.

type MmapCacheConfig

type MmapCacheConfig struct {
	Path              string `json:"directory" yaml:"directory"`
	FileSize          int    `json:"file_size" yaml:"file_size"`
	RetryPeriodMS     int    `json:"retry_period_ms" yaml:"retry_period_ms"`
	CleanUp           bool   `json:"clean_up" yaml:"clean_up"`
	ReservedDiskSpace uint64 `json:"reserved_disk_space" yaml:"reserved_disk_space"`
}

MmapCacheConfig - Config options for the MmapCache type.

func NewMmapCacheConfig

func NewMmapCacheConfig() MmapCacheConfig

NewMmapCacheConfig - Creates a new MmapCacheConfig oject with default values.

Jump to

Keyboard shortcuts

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