NAME
Argon::Queue - Bounded, prioritized queue class
VERSION
version 0.18
SYNOPSIS
use Argon::Queue;
my $q = Argon::Queue->new(max => 32);
unless ($q->is_full) {
$q->put(...);
}
unless ($q->is_empty) {
my $msg = $q->get;
}
DESCRIPTION
The bounded priority queue used by the Argon::Manager for Argon::Messages submitted to the Ar network.
ATTRIBUTES
max
The maximum number of messages supported by the queue.
METHODS
is_empty
Returns true if the queue is empty.
is_full
Returns true if there is at least one Argon::Message in the queue.
put
Adds a message to the queue. Croaks if the supplied message is not an Argon::Message or if the queue is full.
Adding a message to the queue has the side effect of promoting any previously added messages that have been stuck at a lower level priority for an overly long time.
get
Removes and returns the next Argon::Message on the queue. Returns undef
if the queue is empty.
AUTHOR
Jeff Ober <sysread@fastmail.fm>
COPYRIGHT AND LICENSE
This software is copyright (c) 2017 by Jeff Ober.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.