Reflex
view release on metacpan or search on metacpan
lib/Reflex.pm view on Meta::CPAN
=head3 Reflex::Role::Reactive - Add non-blocking reactive behavior to a class.
=head2 Callback Adapters
Reflex provides adapters for nearly every kind of callback that
exists, including condvar-like promises that allow Reflex objects to
be used inline without callbacks at all.
=head3 Reflex::Callback - A base class for callback adapters.
=head3 Reflex::Callback::CodeRef - Implement plain coderef callbacks.
=head3 Reflex::Callback::Method - Implement class and object method callbacks.
=head3 Reflex::Callback::Promise - Return events procedurally rather than via callbacks.
=head3 Reflex::Callbacks - Convenience functions to creating and use callbacks.
=head2 POE Adapters
POE provides over 400 modules for various useful things. Reflex can
work with them using these adapters.
=head3 Reflex::POE::Event - Communicate with POE components that expect command events.
=head3 Reflex::POE::Postback - Communicate with POE components that respond via postbacks.
=head3 Reflex::POE::Session - Communicate with POE components that expect to talk to POE sessions.
=head3 Reflex::POE::Wheel - A generic POE::Wheel adapter to use them in Reflex.
=head3 Reflex::POE::Wheel::Run - Adapt POE::Wheel::Run by wrapping it in a Reflex class.
=head2 Object Collections
It's often useful to manage collections of like-typed modules, such as
connections or jobs.
=head3 Reflex::Collection - Automatically manage a collection of collectible objects.
=head3 Reflex::Role::Collectible - Allow objects to be managed by Reflex::Collection.
=head3 Reflex::Sender - API to access the objects an event has passed through.
=head2 I/O
Event driven programs most often react to I/O of some sort. These
modules provide reactive I/O support.
=head3 Reflex::Acceptor - A non-blocking server (client socket acceptor).
=head3 Reflex::Client - A non-blocking socket client.
=head3 Reflex::Connector - A non-blocking client socket connector.
=head3 Reflex::Role::Accepting - Add non-blocking connection accepting to a role.
=head3 Reflex::Role::Connecting - Add non-blocking client connecting to a class.
=head3 Reflex::Role::InStreaming - Add non-blocking streaming input behavior to a class.
=head3 Reflex::Role::OutStreaming - Add non-blocking streaming output behavior to a class.
=head3 Reflex::Role::Readable - Add non-blocking readable-watching behavior to a class.
=head3 Reflex::Role::Reading - Add standard non-blocking sysread() behavior to a class.
=head3 Reflex::Role::Recving - Add standard non-blocking send/recv behavior to a class.
=head3 Reflex::Role::Streaming - Add non-blocking streaming I/O behavior to a class.
=head3 Reflex::Role::Writable - Add non-blocking writable-watching behavior to a class.
=head3 Reflex::Role::Writing - Add standard non-blocking syswrite() behavior to a class.
=head3 Reflex::Stream - A non-blocking, buffered and translated I/O stream.
=head3 Reflex::UdpPeer - A base class for non-blocking UDP networking peers.
=head2 Signals and Child Processes
Modules that provide signal support, including SIGCHLD for child
process management.
=head3 Reflex::PID - A non-blocking SIGCHLD watcher for a specific process.
=head3 Reflex::Role::PidCatcher - Add non-blocking SIGCHLD watching to a class.
=head3 Reflex::Role::SigCatcher - Add non-blocking signal handling behavior to a class.
=head3 Reflex::Signal - A non-blocking signal watcher.
=head2 Timers
Timer management has been relatively overlooked so far. We'll get to
it eventually, and you're welcome to help.
=head3 Reflex::Interval - A non-blocking periodic interval timer.
=head3 Reflex::Role::Interval - Add non-blocking periodic callbacks to a class.
=head3 Reflex::Role::Timeout - Add non-blocking timeout timer behavior to a class.
=head3 Reflex::Role::Wakeup - Add non-blocking wakeup alarm behavior to a class.
=head3 Reflex::Timeout - A non-blocking single-shot delayed timer.
=head3 Reflex::Wakeup - A non-blocking single-shot alarm for a specific time.
=head2 Breadboarding Traits
Reflex also implements signal/slot style object interaction, through
emit() and watch() methods. These traits were inspired by Smalltalk's
watchable object attributes.
=head3 Reflex::Trait::EmitsOnChange - Cause a Moose attribute to emit() an event when it changes.
=head3 Reflex::Trait::Observed - (Deprecated. See Reflex::Trait::Watched.)
=head3 Reflex::Trait::Watched - Automatically watch a Reactive object stored in a Moose attribute.
=head1 ASSISTANCE
Thank you for volunteering to assist with this project. You can find
like-minded people in a few places, in descending order of preference.
Or, oh, wait, maybe you wanted assistance using it? We'll help you,
too. :)
See irc.perl.org #reflex for help with Reflex.
( run in 2.235 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )