The ::struct namespace contains a commands for processing finite queues.
It exports a single command, ::struct::queue. All functionality provided here can be reached through a
subcommand of this command.
Note: As of version 1.4.1 of this package a critcl based C implementation is available. This
implementation however requires Tcl 8.4 to run.
The ::struct::queue command creates a new queue object with an associated global Tcl command whose name
is queueName. This command may be used to invoke various operations on the queue. It has the following
general form:
queueNameoption ?argarg...?
Option and the args determine the exact behavior of the command. The following commands are
possible for queue objects:
queueNameclear
Remove all items from the queue.
queueNamedestroy
Destroy the queue, including its storage space and associated command.
queueNameget ?count?
Return the front count items of the queue and remove them from the queue. If count is not
specified, it defaults to 1. If count is 1, the result is a simple string; otherwise, it is a
list. If specified, count must be greater than or equal to 1. If there are not enough items in
the queue to fulfull the request, this command will throw an error.
queueNamepeek ?count?
Return the front count items of the queue, without removing them from the queue. If count is not
specified, it defaults to 1. If count is 1, the result is a simple string; otherwise, it is a
list. If specified, count must be greater than or equal to 1. If there are not enough items in
the queue to fulfull the request, this command will throw an error.
queueNameputitem ?item...?
Put the item or items specified into the queue. If more than one item is given, they will be
added in the order they are listed.
queueNameungetitem
Put the item into the queue, at the front, i.e. before any other items already in the queue. This
makes this operation the complement to the method get.
queueNamesize
Return the number of items in the queue.