AnyEvent-ZeroMQ

 view release on metacpan or  search on metacpan

META.json  view on Meta::CPAN

            "MooseX::Types" : 0,
            "MooseX::Types::Moose" : 0,
            "MooseX::Types::Set::Object" : 0,
            "POSIX" : 0,
            "Params::Util" : 0,
            "Regexp::Common" : 0,
            "Scalar::Util" : 0,
            "Try::Tiny" : 0,
            "ZeroMQ::Raw" : 0,
            "ZeroMQ::Raw::Constants" : 0,
            "namespace::autoclean" : 0,
            "true" : 0
         }
      },
      "test" : {
         "requires" : {
            "EV" : 0,
            "Test::More" : 0,
            "Test::TableDriven" : 0,
            "ZeroMQ::Raw::Context" : 0,
            "ok" : 0

META.yml  view on Meta::CPAN

  MooseX::Types: 0
  MooseX::Types::Moose: 0
  MooseX::Types::Set::Object: 0
  POSIX: 0
  Params::Util: 0
  Regexp::Common: 0
  Scalar::Util: 0
  Try::Tiny: 0
  ZeroMQ::Raw: 0
  ZeroMQ::Raw::Constants: 0
  namespace::autoclean: 0
  true: 0
resources:
  repository: git://github.com/jrockway/anyevent-zeromq.git
version: 0.01
x_Dist_Zilla:
  plugins:
    -
      class: Dist::Zilla::Plugin::BeJROCKWAY
      name: '@JROCKWAY/BeJROCKWAY'
      version: 1.102911

Makefile.PL  view on Meta::CPAN

    'MooseX::Types' => '0',
    'MooseX::Types::Moose' => '0',
    'MooseX::Types::Set::Object' => '0',
    'POSIX' => '0',
    'Params::Util' => '0',
    'Regexp::Common' => '0',
    'Scalar::Util' => '0',
    'Try::Tiny' => '0',
    'ZeroMQ::Raw' => '0',
    'ZeroMQ::Raw::Constants' => '0',
    'namespace::autoclean' => '0',
    'true' => '0'
  },
  'VERSION' => '0.01',
  'test' => {
    'TESTS' => 't/*.t'
  }
);


unless ( eval { ExtUtils::MakeMaker->VERSION(6.56) } ) {

lib/AnyEvent/ZeroMQ.pm  view on Meta::CPAN

  $AnyEvent::ZeroMQ::VERSION = '0.01';
}
# ABSTRACT: non-blocking interface to ZeroMQ sockets
use strict;
use warnings;

use ZeroMQ::Raw;
use ZeroMQ::Raw::Constants qw(ZMQ_FD ZMQ_POLLIN ZMQ_POLLOUT ZMQ_EVENTS);
use Carp qw(confess);

use namespace::autoclean;
use AnyEvent;

sub io {
    my ($class, %args) = @_;
    my $poll = $args{poll}   || confess 'must supply poll direction';
    my $sock = $args{socket} || confess 'must supply socket';
    my $cb   = $args{cb}     || confess 'must supply cb';

    my $fd = $sock->getsockopt(ZMQ_FD);
    confess 'getsockopt did not return a valid fd!'

lib/AnyEvent/ZeroMQ/Handle.pm  view on Meta::CPAN

use AnyEvent::ZeroMQ;
use AnyEvent::ZeroMQ::Types qw(IdentityStr);
use ZeroMQ::Raw::Constants qw(ZMQ_NOBLOCK ZMQ_IDENTITY);

use Params::Util qw(_CODELIKE);
use Scalar::Util qw(weaken);
use Try::Tiny;
use POSIX qw(EAGAIN EWOULDBLOCK);

use true;
use namespace::autoclean;

has 'socket' => (
    is       => 'ro',
    isa      => 'ZeroMQ::Raw::Socket',
    handles  => [qw/bind connect/],
    required => 1,
);

before qw/bind connect/ => sub {
    $_[0]->identity;

lib/AnyEvent/ZeroMQ/Handle/Role/Generic.pm  view on Meta::CPAN

package AnyEvent::ZeroMQ::Handle::Role::Generic;
BEGIN {
  $AnyEvent::ZeroMQ::Handle::Role::Generic::VERSION = '0.01';
}
# ABSTRACT: stuff both readable and wrtiable handles do
use Moose::Role;
use true;
use namespace::autoclean;

requires 'on_error';
requires 'clear_on_error';
requires 'has_on_error';
requires 'identity';
requires 'has_identity';
requires 'socket';
requires 'bind';
requires 'connect';

lib/AnyEvent/ZeroMQ/Handle/Role/Readable.pm  view on Meta::CPAN

package AnyEvent::ZeroMQ::Handle::Role::Readable;
BEGIN {
  $AnyEvent::ZeroMQ::Handle::Role::Readable::VERSION = '0.01';
}
# ABSTRACT: be a readable handle
use Moose::Role;
use true;
use namespace::autoclean;

requires 'on_read';
requires 'clear_on_read';
requires 'has_on_read';
requires 'push_read';

__END__
=pod

=head1 NAME

lib/AnyEvent/ZeroMQ/Handle/Role/Writable.pm  view on Meta::CPAN

package AnyEvent::ZeroMQ::Handle::Role::Writable;
BEGIN {
  $AnyEvent::ZeroMQ::Handle::Role::Writable::VERSION = '0.01';
}
# ABSTRACT: be a writable handle
use Moose::Role;
use true;
use namespace::autoclean;

requires 'on_drain';
requires 'clear_on_drain';
requires 'has_on_drain';
requires 'push_write';

__END__
=pod

=head1 NAME

lib/AnyEvent/ZeroMQ/Publish.pm  view on Meta::CPAN

package AnyEvent::ZeroMQ::Publish;
BEGIN {
  $AnyEvent::ZeroMQ::Publish::VERSION = '0.01';
}
# ABSTRACT: Non-blocking OO abstraction over ZMQ_PUB publish/subscribe sockets
use Moose;
use MooseX::Aliases;

use true;
use namespace::autoclean;
use ZeroMQ::Raw::Constants qw(ZMQ_PUB);
use Params::Util qw(_CODELIKE);

with 'AnyEvent::ZeroMQ::Role::WithHandle' =>
    { socket_type => ZMQ_PUB, socket_direction => 'w' },
    'MooseX::Traits';

has '+_trait_namespace' => ( default => 'AnyEvent::ZeroMQ::Publish::Trait' );

sub mangle_message {

lib/AnyEvent/ZeroMQ/Publish/Trait/Topics.pm  view on Meta::CPAN

package AnyEvent::ZeroMQ::Publish::Trait::Topics;
BEGIN {
  $AnyEvent::ZeroMQ::Publish::Trait::Topics::VERSION = '0.01';
}
# ABSTRACT: trait to prefix a message with a topic
use Moose::Role;
use true;
use namespace::autoclean;

requires 'mangle_message';
around 'mangle_message' => sub {
    my ($orig, $self, $msg, %args) = @_;
    my $topic = delete $args{topic};
    $msg = "$topic$msg" if defined $topic;
    return $self->$orig($msg, %args);
};

__END__

lib/AnyEvent/ZeroMQ/Pull.pm  view on Meta::CPAN

package AnyEvent::ZeroMQ::Pull;
BEGIN {
  $AnyEvent::ZeroMQ::Pull::VERSION = '0.01';
}
# ABSTRACT: Non-blocking OO abstraction over ZMQ_PULL push/pull sockets
use Moose;
use true;
use namespace::autoclean;
use ZeroMQ::Raw::Constants qw(ZMQ_PULL);

with 'AnyEvent::ZeroMQ::Role::WithHandle' =>
    { socket_type => ZMQ_PULL, socket_direction => 'r' };

with 'AnyEvent::ZeroMQ::Handle::Role::Generic',
     'AnyEvent::ZeroMQ::Handle::Role::Readable';

__PACKAGE__->meta->make_immutable;

lib/AnyEvent/ZeroMQ/Push.pm  view on Meta::CPAN

package AnyEvent::ZeroMQ::Push;
BEGIN {
  $AnyEvent::ZeroMQ::Push::VERSION = '0.01';
}
# ABSTRACT: Non-blocking OO abstraction over ZMQ_PUSH push/push sockets
use Moose;
use true;
use namespace::autoclean;
use ZeroMQ::Raw::Constants qw(ZMQ_PUSH);

with 'AnyEvent::ZeroMQ::Role::WithHandle' =>
    { socket_type => ZMQ_PUSH, socket_direction => 'w' };

with 'AnyEvent::ZeroMQ::Handle::Role::Generic',
     'AnyEvent::ZeroMQ::Handle::Role::Writable';

__PACKAGE__->meta->make_immutable;

lib/AnyEvent/ZeroMQ/Reply.pm  view on Meta::CPAN

package AnyEvent::ZeroMQ::Reply;
BEGIN {
  $AnyEvent::ZeroMQ::Reply::VERSION = '0.01';
}
# ABSTRACT: Non-blocking OO abstraction over ZMQ_REP request/reply sockets
use Moose;
use true;
use namespace::autoclean;
use Scalar::Util qw(weaken);
use ZeroMQ::Raw::Constants qw(ZMQ_REP);

with 'AnyEvent::ZeroMQ::Role::WithHandle' =>
    { socket_type => ZMQ_REP, socket_direction => '' };

has 'on_request' => (
    is       => 'ro',
    isa      => 'CodeRef',
    required => 1,

lib/AnyEvent/ZeroMQ/Request.pm  view on Meta::CPAN

package AnyEvent::ZeroMQ::Request;
BEGIN {
  $AnyEvent::ZeroMQ::Request::VERSION = '0.01';
}
# ABSTRACT: Non-blocking OO abstraction over ZMQ_REQ request/reply sockets
use Moose;
use true;
use namespace::autoclean;
use ZeroMQ::Raw::Constants qw(ZMQ_REQ);

with 'AnyEvent::ZeroMQ::Role::WithHandle' =>
    { socket_type => ZMQ_REQ, socket_direction => '' };

sub push_request {
    my ($self, $req, $handler, $hint) = @_;
    if(defined $hint){
        $self->handle->push_read(sub {
            $handler->(@_, $hint);

lib/AnyEvent/ZeroMQ/Role/WithHandle.pm  view on Meta::CPAN

use true;

use AnyEvent::ZeroMQ::Types qw(SocketType SocketDirection Endpoints);
use AnyEvent::ZeroMQ::Handle;
use AnyEvent::ZeroMQ::Handle::Role::Generic;
use AnyEvent::ZeroMQ::Handle::Role::Readable;
use AnyEvent::ZeroMQ::Handle::Role::Writable;
use ZeroMQ::Raw;
use Try::Tiny;
use Carp qw(confess);
use namespace::autoclean;


parameter 'socket_type' => (
    is       => 'ro',
    isa      => SocketType,
    required => 1,
);

parameter 'socket_direction' => (
    is       => 'ro',

lib/AnyEvent/ZeroMQ/Subscribe.pm  view on Meta::CPAN

package AnyEvent::ZeroMQ::Subscribe;
BEGIN {
  $AnyEvent::ZeroMQ::Subscribe::VERSION = '0.01';
}
# ABSTRACT: Non-blocking OO abstraction over ZMQ_SUB publish/subscribe sockets
use Moose;
use true;
use namespace::autoclean;
use MooseX::Types::Set::Object;
use Scalar::Util qw(weaken);
use ZeroMQ::Raw::Constants qw(ZMQ_SUB ZMQ_SUBSCRIBE ZMQ_UNSUBSCRIBE);

with 'AnyEvent::ZeroMQ::Role::WithHandle' =>
    { socket_type => ZMQ_SUB, socket_direction => '' },
    'MooseX::Traits';

has '+_trait_namespace' => ( default => 'AnyEvent::ZeroMQ::Subscribe::Trait' );

lib/AnyEvent/ZeroMQ/Subscribe/Trait/Topics.pm  view on Meta::CPAN

package AnyEvent::ZeroMQ::Subscribe::Trait::Topics;
BEGIN {
  $AnyEvent::ZeroMQ::Subscribe::Trait::Topics::VERSION = '0.01';
}
# ABSTRACT: trait to parse messages and extract the topic
use Moose::Role;
use true;
use namespace::autoclean;

requires '_topics_changed';
requires '_call_callback'; # cb, item, rest -> cb, item, topic, rest

has 'topic_regex' => (
    reader     => 'topic_regex',
    isa        => 'RegexpRef',
    lazy_build => 1,
);

 view all matches for this distribution
 view release on metacpan -  search on metacpan

( run in 0.683 second using v1.00-cache-2.02-grep-82fe00e-cpan-c98054f2a92 )