package ZeroMQ::Constants; use strict; use base qw(Exporter); use ZeroMQ (); # TODO: keep in sync with docs below and Makefile.PL BEGIN { my @possibly_nonexistent = qw( ZMQ_BACKLOG ZMQ_FD ZMQ_LINGER ZMQ_EVENTS ZMQ_RECONNECT_IVL ZMQ_RECONNECT_IVL_MAX ZMQ_SWAP ZMQ_TYPE ZMQ_VERSION ZMQ_VERSION_MAJOR ZMQ_VERSION_MINOR ZMQ_VERSION_PATCH ); my $version = ZeroMQ::version(); foreach my $symbol (@possibly_nonexistent) { if (! __PACKAGE__->can($symbol) ) { no strict 'refs'; *{$symbol} = sub { Carp::croak("$symbol is not available in zeromq2 $version") }; }; } } # XXX ZMQ_NOBLOCK needs to be deprecated, but doing this for compat # for now... we need to get rid of it when we release it if ( ZMQ_VERSION_MAJOR >= 3 ) { *ZMQ_NOBLOCK = \&ZMQ_DONTWAIT; } our %EXPORT_TAGS = ( # socket types socket => [ qw( ZMQ_PAIR ZMQ_PUB ZMQ_SUB ZMQ_REQ ZMQ_REP ZMQ_XREQ ZMQ_XREP ZMQ_XSUB ZMQ_XPUB ZMQ_ROUTER ZMQ_DEALER ZMQ_PULL ZMQ_PUSH ZMQ_UPSTREAM ZMQ_DOWNSTREAM ZMQ_BACKLOG ), # socket send/recv flags qw( ZMQ_NOBLOCK ZMQ_SNDMORE ), # get/setsockopt options qw( ZMQ_HWM ZMQ_SWAP ZMQ_AFFINITY ZMQ_IDENTITY ZMQ_SUBSCRIBE ZMQ_UNSUBSCRIBE ZMQ_RATE ZMQ_RECOVERY_IVL ZMQ_RECOVERY_IVL_MAX ZMQ_MCAST_LOOP ZMQ_SNDBUF ZMQ_RCVBUF ZMQ_RCVMORE ZMQ_RECONNECT_IVL ZMQ_RECONNECT_IVL_MAX ZMQ_LINGER ZMQ_FD ZMQ_EVENTS ZMQ_TYPE ), # i/o multiplexing qw( ZMQ_POLLIN ZMQ_POLLOUT ZMQ_POLLERR ), ], # devices device => [ qw( ZMQ_QUEUE ZMQ_FORWARDER ZMQ_STREAMER ), ], # max size of vsm message message => [ qw( ZMQ_MAX_VSM_SIZE ), # message types qw( ZMQ_DELIMITER ZMQ_VSM ), # message flags qw( ZMQ_MSG_MORE ZMQ_MSG_SHARED ),] ); $EXPORT_TAGS{all} = [ map { @$_ } values %EXPORT_TAGS ]; our @EXPORT_OK = ( qw( ZMQ_RECOVERY_IVL_MSEC ZMQ_HAUSNUMERO ZMQ_VERSION ZMQ_VERSION_MAJOR ZMQ_VERSION_MINOR ZMQ_VERSION_PATCH ), @{ $EXPORT_TAGS{'all'} } ); 1; __END__ =head1 NAME ZeroMQ::Constants - ZeroMQ Constants =head1 EXPORTS You may choose to import one or more (using the C<:all> import tag) constants into your namespace by supplying arguments to the C call as shown in the synopsis above. The exportable constants are: =head2 C<:socket> - Socket types and socket options =over 4 =item ZMQ_PAIR =item ZMQ_PUB =item ZMQ_SUB =item ZMQ_REQ =item ZMQ_REP =item ZMQ_XREQ =item ZMQ_XREP =item ZMQ_XPUB =item ZMQ_XSUB =item ZMQ_ROUTER =item ZMQ_DEALER =item ZMQ_PULL =item ZMQ_PUSH =item ZMQ_UPSTREAM =item ZMQ_DOWNSTREAM =item ZMQ_BACKLOG =item ZMQ_FD =item ZMQ_LINGER =item ZMQ_EVENTS =item ZMQ_RECONNECT_IVL =item ZMQ_RECONNECT_IVL_MAX =item ZMQ_TYPE =item ZMQ_NOBLOCK =item ZMQ_SNDMORE =item ZMQ_HWM =item ZMQ_SWAP =item ZMQ_AFFINITY =item ZMQ_IDENTITY =item ZMQ_SUBSCRIBE =item ZMQ_UNSUBSCRIBE =item ZMQ_RATE =item ZMQ_RECOVERY_IVL =item ZMQ_MCAST_LOOP =item ZMQ_SNDBUF =item ZMQ_RCVBUF =item ZMQ_RCVMORE =item ZMQ_POLLIN =item ZMQ_POLLOUT =item ZMQ_POLLERR =item ZMQ_RECOVERY_IVL_MSEC =back =head2 C<:device> - Device types =over 4 =item ZMQ_QUEUE =item ZMQ_FORWARDER =item ZMQ_STREAMER =back =head2 C<:message> - Message Options =over 4 =item ZMQ_MAX_VSM_SIZE =item ZMQ_DELIMITER =item ZMQ_VSM =item ZMQ_MSG_MORE =item ZMQ_MSG_SHARED =back =head2 miscellaneous =over 4 =item ZMQ_HAUSNUMERO =item ZMQ_VERSION =item ZMQ_VERSION_MAJOR =item ZMQ_VERSION_MINOR =item ZMQ_VERSION_PATCH =back =head2 uncategorized =cut