queue

package
v0.6.2 Latest Latest
Warning

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

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

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// ErrIsEmpty is returned when queue is empty
	ErrIsEmpty = errors.New("queue: is empty")

	// ErrIDOutOfBounds is returned when queue is is out of bounds
	ErrIDOutOfBounds = errors.New("queue: ID is out of bounds")

	// ErrInvalidName is returned when queue name is not valid
	ErrInvalidName = errors.New("queue: name is not alphanumeric")

	// ErrNameTooLong means that queue name is longer then allowed limit
	ErrNameTooLong = errors.New("queue: name is too long")

	// ErrInvalidHeadValue is returned when there is an attempt
	// to assign invalid queue head value
	ErrInvalidHeadValue = errors.New("queue: head can not be less then zero")

	// ErrSharedFlush means that there was an attempt to flush shared queue
	ErrSharedFlush = errors.New("queue: can't flush shared queue")
)

Functions

This section is empty.

Types

type Consumer added in v0.5.1

type Consumer interface {
	GetNext() ([]byte, error)
	PutBack([]byte) error
	Peek() ([]byte, error)
	Flush() error
	Length() uint64
	IsEmpty() bool
	Stats() *Stats
}

Consumer represents a queue consumer

type Item

type Item struct {
	ID    uint64
	Key   []byte
	Value []byte
}

Item represents a queue item

type Options added in v0.5.1

type Options struct {
	KeyPrefix []byte
}

Options represents queue options

type Queue

type Queue struct {
	sync.RWMutex
	Name    string
	DataDir string
	// contains filtered or unexported fields
}

Queue represents a persistent FIFO structure that stores the data in leveldb

func Open

func Open(name string, dataDir string, opts *Options) (*Queue, error)

Open creates a queue and opens underlying leveldb database

func OpenShared added in v0.5.1

func OpenShared(name string, keyPrefix string, db *leveldb.DB) (*Queue, error)

OpenShared creates and initializes a queue from opened leveldb database

func (*Queue) Close

func (q *Queue) Close()

Close leveldb database

func (*Queue) DeleteAll added in v0.5.1

func (q *Queue) DeleteAll() error

DeleteAll deletes all items from the queue. This is expensive operation. If you want to drop all elements, it's better to close the queue and leveldb folder

func (*Queue) Drop

func (q *Queue) Drop()

Drop closes and deletes leveldb database

func (*Queue) Enqueue

func (q *Queue) Enqueue(value []byte) error

Enqueue adds new value to the queue

func (*Queue) Flush added in v0.5.1

func (q *Queue) Flush() error

Flush flushes all queue data

func (*Queue) GetNext added in v0.5.1

func (q *Queue) GetNext() ([]byte, error)

GetNext returns next value from queue

func (*Queue) Head

func (q *Queue) Head() uint64

Head returns current head offset of the queue

func (*Queue) IsEmpty added in v0.5.1

func (q *Queue) IsEmpty() bool

IsEmpty returns false if queue is empty

func (*Queue) Length

func (q *Queue) Length() uint64

Length returns current length of the queue

func (*Queue) Path

func (q *Queue) Path() string

Path returns leveldb database file path

func (*Queue) Peek

func (q *Queue) Peek() ([]byte, error)

Peek returns next value without removing it from the queue

func (*Queue) PutBack added in v0.5.1

func (q *Queue) PutBack(value []byte) error

PutBack returns value to the queue

func (*Queue) ReadItemByID added in v0.5.1

func (q *Queue) ReadItemByID(id uint64) (*Item, error)

ReadItemByID returns a value by it's id

func (*Queue) ReadItemByOffset added in v0.5.1

func (q *Queue) ReadItemByOffset(offset uint64) (*Item, error)

ReadItemByOffset returns an item by offset from the queue head, starting from 0.

func (*Queue) Stats

func (q *Queue) Stats() *Stats

Stats returns stats struct

func (*Queue) Tail

func (q *Queue) Tail() uint64

Tail returns current tail offset of the queue

type Stats

type Stats struct {
	OpenReads int64
}

Stats contains queue level stats

func (*Stats) UpdateOpenReads added in v0.5.1

func (s *Stats) UpdateOpenReads(value int64)

UpdateOpenReads increments OpenReads stats item

Jump to

Keyboard shortcuts

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