The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

Changes for version 0.099

  • Change: d9d928cdf7fd182e0b0cc17ef9a303cbf7b94c85 Author: Rocco Caputo <rcaputo@cpan.org> Date : 2013-04-21 16:07:32 +0000
    • [rt.cpan.org 83718] Implement a start method for Reflex::Role::Interval.
    • Pointed out by CPAN user MBETHKE.
  • Change: 937c4767e693dce91ef4e55901ff1a121a4da6e9 Author: Rocco Caputo <rcaputo@cpan.org> Date : 2013-04-21 15:53:03 +0000
    • Fix a method name typo.
  • Change: 3d916a2db7b6472d66377923506c6a111a7e76af Author: Rocco Caputo <rcaputo@cpan.org> Date : 2013-04-21 15:49:47 +0000
    • [rt.cpan.org 81497] Make a couple attributes lazy to avoid hash order issues.
    • Andreas Koenig reported a hash-order issue in Reflex. I couldn't see it, but Matt S. Trout pointed out that it's probably because some trait attributes are too eager. Here I make those traits lazy on his recommendation. Tests pass. Will commend it to the CPAN testers for further evaluation.
  • Change: 199cb74c341c9b5b0185abfdf61b3fb30817779a Author: Rocco Caputo <rcaputo@cpan.org> Date : 2012-09-28 23:32:14 +0000
    • Try to illustrate a more common way to call back.
  • Change: 5f75559f7adb71a57bec6add86823e85a2319cbe Author: Rocco Caputo <rcaputo@cpan.org> Date : 2012-09-27 19:01:10 +0000
    • This is a simpler version version of eg-22-multiple-http-requests.pl.
    • This one subclasses HttpClient and adds a pending() attribute to count the requests currently in play.
  • Change: 3fe11a868d8e19007be6474e1a5604d316b03379 Author: Rocco Caputo <rcaputo@cpan.org> Date : 2012-09-27 19:01:05 +0000
    • Create a consumer that tracks the number of pending HTTP reqeusts.
    • It's not ideal since POE::Component::Client::HTTP can be overloaded. A more complete consumer would throttle the requests so too many couldn't be started at once.
  • Change: 4797a72fe78bb812f4f61716966f5d4e5def9117 Author: Rocco Caputo <rcaputo@cpan.org> Date : 2012-09-27 18:24:36 +0000
    • Sartak's roles talk showed me how to make pluggable implementations.
  • Change: 8a4f21a9ecb9b939244f1c84f32da852b7b3b7cd Author: Rocco Caputo <rcaputo@cpan.org> Date : 2012-09-27 18:24:35 +0000
    • Refactor the HTTP client example so that the client can be reused.
  • Change: 5090f76e687d9e415a4fb1dd5cb5ba95b79c989b Author: Rocco Caputo <rcaputo@cpan.org> Date : 2012-09-27 18:24:35 +0000
    • Fix a typo that getty found. "BUIILD" isn't a real Moose method.
  • Change: 8011d019f2e641e717b1893230aa8980fe211e56 Author: Rocco Caputo <rcaputo@cpan.org> Date : 2012-08-18 16:51:50 +0000
    • Merge pull request #4 from triddle/master
    • Created benchmark suite for event delivery and consumption.
    • This will also help for profiling.
  • Change: 5b3c10153ab81d43dcf0b5bd05002ad93463f1c2 Author: Tyler Riddle <triddle@gmail.com> Date : 2012-08-18 14:57:55 +0000
    • created benchmark suite for object delivery and consumption
  • Change: acf08fab98d8bf9f489975a79dad3682f0a8bf59 Author: Rocco Caputo <rcaputo@cpan.org> Date : 2012-08-07 20:28:14 +0000
    • Start an intro outline based on Q&A with triddle.
  • Change: f50f701cd7c799007276ff126bbfecf315e4a691 Author: Rocco Caputo <rcaputo@cpan.org> Date : 2012-06-19 14:51:28 +0000
    • Improve readability of event dump output.

Documentation

What is Reflex, and how do I use it?

Modules

Class library for flexible, reactive programs.
a non-blocking server (client socket acceptor)
Base class for reactive (aka, event driven) objects.
Generic callback adapters to simplify calling back
Callback adapter for plain code references
Callback adapter for class and object methods
Non-callback, inline Promise adapter
Convenience functions for creating and using callbacks
A non-blocking socket client.
Autmatically manage a collection of collectible objects
non-blocking client socket connector
A stand-alone multi-shot periodic callback
Watch the exit of a subprocess by its SIGCHLD signal.
Communicate with POE components expecting events.
Communicate with POE components expecting postbacks.
Watch events from a POE::Session object.
Base class for POE::Wheel wrappers.
Represent POE::Wheel::Run as a Reflex class.
define a Reflex paramaterized role
add connection accepting to a class
add manageability by Reflex::Collection
add non-blocking client connecting to a class
add streaming input behavior to a class
set a periodic, recurring timer
add streaming input behavior to a class
add async process reaping behavior to a class
Make an object reactive (aka, event driven).
add readable-watching behavior to a class
add standard sysread() behavior to a class
Mix standard send/recv code into a class.
add signal catching behavior to a class
add streaming I/O behavior to a class
set a wakeup callback for a relative delay
set a wakeup callback for a particular UNIX time
add writable-watching behavior to a class
add buffered non-blocking syswrite() to a class
receive callbacks when signals arrive
Buffered, translated I/O on non-blocking handles.
A stand-alone single-shot delayed callback
Emit an event when an attribute's value changes.
Automaticall watch Reflex objects.
Automatically watch Reflex objects.
Base class for non-blocking UDP networking peers.
A stand-alone single-shot callback at an absolute time

Provides

in docs/intro/AfterAwhileClass.pm
in docs/intro/AfterAwhileRole.pm
in docs/intro/AfterAwhileSubclass.pm
in docs/intro/AsyncAwhileClass.pm
in docs/intro/AsyncAwhileRole.pm
in bench/objectmethod-array.pm
in bench/objectmethod-cbmanager.pm
in bench/objectmethod-hash.pm
in bench/lib/EventBench/Reflex/Event.pm
in lib/Reflex/Codec/Message.pm
in lib/Reflex/Codec/Message/Datagram.pm
in lib/Reflex/Codec/Message/Eof.pm
in lib/Reflex/Codec/Message/Stream.pm
in lib/Reflex/Decoder/Line.pm
in lib/Reflex/Eg.pm
in lib/Reflex/Eg/Inheritance/Moose.pm
in lib/Reflex/Eg/Inheritance/Plain.pm
in lib/Reflex/Encoder/Line.pm
in lib/Reflex/Event.pm
in lib/Reflex/Event/Datagram.pm
in lib/Reflex/Event/EOF.pm
in lib/Reflex/Event/Error.pm
in lib/Reflex/Event/FileHandle.pm
in lib/Reflex/Event/Flushed.pm
in lib/Reflex/Event/Interval.pm
in lib/Reflex/Event/Octets.pm
in lib/Reflex/Event/POE.pm
in lib/Reflex/Event/Postback.pm
in lib/Reflex/Event/SigChild.pm
in lib/Reflex/Event/Signal.pm
in lib/Reflex/Event/Socket.pm
in lib/Reflex/Event/Time.pm
in lib/Reflex/Event/Timeout.pm
in lib/Reflex/Event/ValueChange.pm
in lib/Reflex/Event/Wakeup.pm
in lib/Reflex/Filehandle.pm
in lib/Reflex/Role/Decoding.pm
in lib/Reflex/Role/Decoding/Datagram.pm
in lib/Reflex/Role/Decoding/Stream.pm
in lib/Reflex/Role/Encoding.pm

Examples