The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

POEx::ZMQ3::Role::Emitter - Event emitter for POEx::ZMQ3

SYNOPSIS

  package MyZMQServer;
  use Moo;
  with 'POEx::ZMQ3::Role::Emitter';
  with 'POEx::ZMQ3::Role::Sockets';

  sub start {
    my ($self) = @_;
    # ... set up zeromq connections, etc ...
    $self->_start_emitter;
  }

  sub stop {
    my ($self) = @_;
    $self->process( 'stop' );
    ## -> dispatched to loaded plugins as Zmq_stop
    $self->clear_all_zmq_sockets;
    $self->_shutdown_emitter;
  }

  sub zmq_message_ready {
    my ($self, $alias, $zmsg, $data) = @_;
    $self->emit( 'got_msg', $data );
    # -> dispatched to loaded plugins as Zmq_got_msg
    #    (synchronously)
    # -> emitted to subscribed POE::Session(s) as zeromq_got_msg
    #    (async)
  }

DESCRIPTION

This is a small wrapper for MooX::Role::POE::Emitter, providing some sane defaults for a POEx::ZMQ3 Emitter:

  ->event_prefix eq 'zeromq_'
  ->pluggable_type_prefixes eq +{
      PROCESS => 'P_Zmq',
      NOTIFY  => 'Zmq',
    }

AUTHOR

Jon Portnoy <avenj@cobaltirc.org>