Changes for version 0.009
- Add Message::Passing::Manual::Components.
- Add SYNOPSIS to Message::Passing::Role::Filter.
- Additional documentation in Message::Passing::Manual.
- Refactor building connection managers so less duplicate code is needed in components.
- Make STDIN input saner.
- Add an 'error chain' concept, allowing components to have a way of reporting connection (or other) issues out of band with the message stream. This defaults to STDERR, however can be overridden per component, or for a whole chain.
- Add error_log() function to the DSL for setting the error chain up for a whole chain.
- Use the error chain in Message::Passing::Role::ConnectionManager to output errors when connections disconnect / timeout / reconnect.
- Cleanups to Message::Passing::Input::FileTail to not leak processes and file handles if the instance of the Input class is destroyed.
Documentation
table of contents for Message::Passing documentation
Writing inputs, outputs and filters
The concepts behind the framework
Common recipies
command line Message::Passing runner script
Modules
a simple way of doing messaging.
An easy way to make chains of Message::Passing components.
Build a set of chains using symbolic names
Filter all messages out.
Delay messages for some time.
Encodes data structures as JSON for output
Filter a subset of messages out.
Filter no messages out.
Send a message stream to multiple outputs.
File tailing input
Null input
STDIN input
Output to call back into your code
File output
output to an IO handle
/dev/null for messages
STDOUT output
STDOUT output
Output for use in unit tests
Role providing 'foo' and 'foo_options' attributes
A simple manager for inputs and outputs that need to make network connections.
Simple abstraction for filtering messages
Role for components which have a connection
A role for components which can report errors
Consumes messages
Handy role for building messaging scripts.
Provides
in lib/Message/Passing/Role/HasHostnameAndPort.pm
in lib/Message/Passing/Role/HasTimeoutAndReconnectAfter.pm
in lib/Message/Passing/Role/HasUsernameAndPassword.pm
in lib/Message/Passing/Types.pm