Provided by: libmessage-passing-perl_0.116-2_all bug

NAME

       Message::Passing:Role::Script - Handy role for building messaging scripts.

SYNOPSIS

           # my_message_passer.pl
           package My::Message::Passer;
           use Moo;
           use MooX::Options;
           use MooX::Types::MooseLike::Base qw/ Bool /;
           use Message::Passing::DSL;

           with 'Message::Passing::Role::Script';

           option foo => (
               is => 'ro',
               isa => Bool,
           );

           sub build_chain {
               my $self = shift;
               message_chain {
                   input example => ( output_to => 'test_out', .... );
                   output test_out => ( foo => $self->foo, ... );
               };
           }

           __PACKAGE__->start unless caller;
           1;

DESCRIPTION

       This role can be used to make simple message passing scripts.

       The user implements a MooX::Options type script class, with a "build_chain" method, that
       builds one or more Message::Passing chains and returns them.

           __PACKAGE__->start unless caller;

       is then used before the end of the script.

       This means that when the code is run as a script, it'll parse the command line options,
       and start a message passing server..

REQUIRED METHODS

build_chain

       Return a chain of message processors, or an array reference with multiple chains of
       message processors.

ATTRIBUTES

   daemonize
       Do a double fork and lose controlling terminal.

       Used to run scripts in the background.

   io_priority
       The IO priority to run the script at..

       Valid values for the IO priority are:

       none
       be
       rt
       idle

   user
       Changes the user the script is running as. You probably need to run the script as root for
       this option to work.

   pid_file
       Write a pid file out. Useful for running Message::Passing scripts as daemons and/or from
       init.d scripts.

METHODS

   start
       Called as a class method, it will build the current class as a command line script
       (parsing ARGV), setup the daemonization options, call the ->build_chain method supplied by
       the user to build the chains needed for this application.

       Then enters the event loop and never returns.

   change_uid_if_needed
       Tries to change uid if the --user option has been supplied

   daemonize_if_needed
       Tires to daemonize if the --daemonize option has been supplied

   set_io_priority_if_needed
       Tries to set the process' IO priority if the --io_priority option has been supplied.

SPONSORSHIP

       This module exists due to the wonderful people at Suretec Systems Ltd.
       <http://www.suretecsystems.com/> who sponsored its development for its VoIP division
       called SureVoIP <http://www.surevoip.co.uk/> for use with the SureVoIP API -
       <http://www.surevoip.co.uk/support/wiki/api_documentation>

AUTHOR, COPYRIGHT AND LICENSE

       See Message::Passing.