35 lines
1.3 KiB
Go
35 lines
1.3 KiB
Go
package stanza
|
|
|
|
// FIFO queue for string contents
|
|
// Implementations have no guarantee regarding thread safety !
|
|
type FifoQueue interface {
|
|
// Pop returns the first inserted element still in queue and deletes it from queue. If queue is empty, returns nil
|
|
// No guarantee regarding thread safety !
|
|
Pop() Queueable
|
|
|
|
// PopN returns the N first inserted elements still in queue and deletes them from queue. If queue is empty or i<=0, returns nil
|
|
// If number to pop is greater than queue length, returns all queue elements
|
|
// No guarantee regarding thread safety !
|
|
PopN(i int) []Queueable
|
|
|
|
// Peek returns a copy of the first inserted element in queue without deleting it. If queue is empty, returns nil
|
|
// No guarantee regarding thread safety !
|
|
Peek() Queueable
|
|
|
|
// Peek returns a copy of the first inserted element in queue without deleting it. If queue is empty or i<=0, returns nil.
|
|
// If number to peek is greater than queue length, returns all queue elements
|
|
// No guarantee regarding thread safety !
|
|
PeekN() []Queueable
|
|
// Push adds an element to the queue
|
|
// No guarantee regarding thread safety !
|
|
Push(s Queueable) error
|
|
|
|
// Empty returns true if queue is empty
|
|
// No guarantee regarding thread safety !
|
|
Empty() bool
|
|
}
|
|
|
|
type Queueable interface {
|
|
QueueableName() string
|
|
}
|