Provided by: libzeromq-perl_0.23-1build1_amd64
NAME
ZeroMQ::Poller - Convenient socket polling object
SYNOPSIS
use ZeroMQ qw/:all/; my $cxt = ZeroMQ::Context->new() my $sock = ZeroMQ::Socket->new($cxt, ZMQ_REP); $sock->bind("inproc://amazingsocket"); my $poller = ZeroMQ::Poller->new( { name => 'amazing', socket => $sock, events => ZMQ_POLLIN, callback => sub { do_something_amazing }, }, ); $poller->poll(); do_another_amazing_thing() if $poller->has_event(0); do_a_third_amazing_thing() if $poller->has_event('amazing');
DESCRIPTION
A "ZeroMQ::Poller" watches zero or more sockets for events and signals that these have occurred in several ways. Given a list of sockets and events to watch for, it can directly invoke a callback or simply raise a flag.
METHODS
new(@poll_items) Creates a new "ZeroMQ::Poller" The constructor accepts a list of hash references ("poll items"), each of which specifies a socket or file descriptor to watch and what to watch it for. In addition, each poll item may specify a callback to invoke or a name by which it may be queried. The accepted keys are: socket Contains the "ZeroMQ::Socket" item to poll. fd Contains the file descriptor to poll. One of "socket" or "fd" is required; "socket" has precedence. events Some combination of "ZMQ_POLLIN", "ZMQ_POLLOUT", and "ZMQ_POLLERR"; the events to trap. callback A coderef taking no arguments and emitting no return value, invoked when the specified events occur on the socket or file descriptor. Optional. name A string, naming the poll item for later use with "has_event". poll($timeout) Blocks until there is activity or the given timeout is reached. If no timeout or a negative timeout is specified, blocks indefinitely. If a timeout is given, it is interpreted as microseconds. has_event($index) has_event($name) Returns true if the poll item at the given index or with the given name reported activity during the last call to "poll".