stringqueue

package
v0.2.2 Latest Latest
Warning

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

Go to latest
Published: Jun 25, 2015 License: MIT Imports: 1 Imported by: 0

Documentation

Overview

Package stringqueue provides string queue for libcentrifugo package client messages.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type StringQueue

type StringQueue interface {
	// Add a string to the back of the queue
	// will return false if the queue is closed.
	// In that case the string is dropped.
	Add(i string) bool

	// Remove will remove a string from the queue.
	// If false is returned, it either means 1) there were no items on the queue
	// or 2) the queue is closed.
	Remove() (string, bool)

	// Close the queue and discard all entried in the queue
	// all goroutines in wait() will return
	Close()

	// Closed returns true if the queue has been closed
	// The call cannot guarantee that the queue hasn't been
	// closed while the function returns, so only "true" has a definite meaning.
	Closed() bool

	// Wait for a string to be added or queue to be closed.
	// If there is items on the queue the first will
	// be returned immediately.
	// Will return "", false if the queue is closed.
	// Otherwise the return value of "remove" is returned.
	Wait() (string, bool)

	// Cap returns the capacity (without allocations)
	Cap() int

	// Len returns the current length of the queue.
	Len() int
}

StringQueue is an unbounded queue of strings. The queue is goroutine safe. Inspired by http://blog.dubbelboer.com/2015/04/25/go-faster-queue.html (MIT)

func New

func New() StringQueue

NewStringQueue returns a new string queue with initial capacity.

Jump to

Keyboard shortcuts

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