Reflex

 view release on metacpan or  search on metacpan

README.mkdn  view on Meta::CPAN


### Reflex::Role::Reactive - Add non-blocking reactive behavior to a class.

## 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.

### Reflex::Callback - A base class for callback adapters.

### Reflex::Callback::CodeRef - Implement plain coderef callbacks.

### Reflex::Callback::Method - Implement class and object method callbacks.

### Reflex::Callback::Promise - Return events procedurally rather than via callbacks.

### Reflex::Callbacks - Convenience functions to creating and use callbacks.

## POE Adapters

POE provides over 400 modules for various useful things.  Reflex can
work with them using these adapters.

### Reflex::POE::Event - Communicate with POE components that expect command events.

### Reflex::POE::Postback - Communicate with POE components that respond via postbacks.

### Reflex::POE::Session - Communicate with POE components that expect to talk to POE sessions.

### Reflex::POE::Wheel - A generic POE::Wheel adapter to use them in Reflex.

### Reflex::POE::Wheel::Run - Adapt POE::Wheel::Run by wrapping it in a Reflex class.

## Object Collections

It's often useful to manage collections of like-typed modules, such as
connections or jobs.

### Reflex::Collection - Automatically manage a collection of collectible objects.

### Reflex::Role::Collectible - Allow objects to be managed by Reflex::Collection.

### Reflex::Sender - API to access the objects an event has passed through.

## I/O

Event driven programs most often react to I/O of some sort.  These
modules provide reactive I/O support.

### Reflex::Acceptor - A non-blocking server (client socket acceptor).

### Reflex::Client - A non-blocking socket client.

### Reflex::Connector - A non-blocking client socket connector.

### Reflex::Role::Accepting - Add non-blocking connection accepting to a role.

### Reflex::Role::Connecting - Add non-blocking client connecting to a class.

### Reflex::Role::InStreaming - Add non-blocking streaming input behavior to a class.

### Reflex::Role::OutStreaming - Add non-blocking streaming output behavior to a class.

### Reflex::Role::Readable - Add non-blocking readable-watching behavior to a class.

### Reflex::Role::Reading - Add standard non-blocking sysread() behavior to a class.

### Reflex::Role::Recving - Add standard non-blocking send/recv behavior to a class.

### Reflex::Role::Streaming - Add non-blocking streaming I/O behavior to a class.

### Reflex::Role::Writable - Add non-blocking writable-watching behavior to a class.

### Reflex::Role::Writing - Add standard non-blocking syswrite() behavior to a class.

### Reflex::Stream - A non-blocking, buffered and translated I/O stream.

### Reflex::UdpPeer - A base class for non-blocking UDP networking peers.

## Signals and Child Processes

Modules that provide signal support, including SIGCHLD for child
process management.

### Reflex::PID - A non-blocking SIGCHLD watcher for a specific process.

### Reflex::Role::PidCatcher - Add non-blocking SIGCHLD watching to a class.

### Reflex::Role::SigCatcher - Add non-blocking signal handling behavior to a class.

### Reflex::Signal - A non-blocking signal watcher.

## Timers

Timer management has been relatively overlooked so far.  We'll get to
it eventually, and you're welcome to help.

### Reflex::Interval - A non-blocking periodic interval timer.

### Reflex::Role::Interval - Add non-blocking periodic callbacks to a class.

### Reflex::Role::Timeout - Add non-blocking timeout timer behavior to a class.

### Reflex::Role::Wakeup - Add non-blocking wakeup alarm behavior to a class.

### Reflex::Timeout - A non-blocking single-shot delayed timer.

### Reflex::Wakeup - A non-blocking single-shot alarm for a specific time.

## 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.

### Reflex::Trait::EmitsOnChange - Cause a Moose attribute to emit() an event when it changes.

### Reflex::Trait::Observed - (Deprecated. See Reflex::Trait::Watched.)

### Reflex::Trait::Watched - Automatically watch a Reactive object stored in a Moose attribute.

# 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 0.757 second using v1.01-cache-2.11-cpan-39bf76dae61 )