============================ 2006-09-23 18:14:57 v0_01_00 ============================ 2006-09-23 18:13:50 (r106) by rcaputo; lib/POE/Stage.pm M Switch to manually selected version numbers. And make it 0.01_00. 2006-09-23 18:12:07 (r105) by rcaputo lib/POE/Request/Upward.pm M; lib/POE/Request/Recall.pm M; lib/POE/Watcher/Delay.pm M; lib/POE/Watcher/Input.pm M; lib/POE/Watcher.pm M; lib/POE/Stage/TiedAttributes.pm M; lib/POE/Watcher/Wheel.pm M; lib/POE/Stage.pm M; lib/POE/Stage/Resolver.pm M; lib/POE/Watcher/Wheel/Run.pm M; lib/POE/Stage/Receiver.pm M; lib/POE/Request/Return.pm M; lib/POE/Stage/Echoer.pm M; lib/POE/Watcher/Wheel/SocketFactory.pm M; lib/POE/Stage/Ticker.pm M; lib/POE/Request/Emit.pm M; lib/POE/Watcher/Wheel/ReadWrite.pm M; lib/POE/Request.pm M Add a note about the distribution's not-ready-for-primetime-ness to the BUGS section of each module. 2006-09-05 23:41:37 (r104) by hdp lib/POE/Watcher/Wheel/SocketFactory.pm A [push @ 4225f28a9441002fb4fa39af374b4518a1798017] SocketFactory watcher Original author: Hans Dieter Pearcey Date: 2006-09-06 03:41:48 2006-09-05 15:14:37 (r103) by hdp lib/POE/Watcher/Wheel.pm M; lib/POE/Watcher/Wheel/Run.pm M [push @ f0af741f1192328143b6bdd8aaf787179ab0fb31] refactoring wheel_* from Run to the base class, using Class::Data::Inheritable Original author: Hans Dieter Pearcey Date: 2006-09-05 18:50:56 2006-09-05 15:14:32 (r102) by hdp; lib/POE/Watcher/Wheel/ReadWrite.pm A [push @ 705e36aac0c42042fa8b66a7e796997b439d1d7a] working ReadWrite watcher Original author: Hans Dieter Pearcey Date: 2006-09-05 18:48:42 2006-09-05 01:54:13 (r101) by rcaputo; PATTERNS M Clarify some notes after a discussion with Dieter. 2006-08-14 03:13:27 (r100) by rcaputo; examples/attributes.perl A Totally comment up this example as a tutorial explaining WTF?! is going on with attributes and scopes and stuff. 2006-08-14 02:21:22 (r99) by rcaputo examples/self-requesting-stage.perl M; lib/POE/Request/Upward.pm M; examples/log-resolver.perl M; examples/udp-peer.perl M; examples/many-responses.perl M; lib/POE/Stage/TiedAttributes.pm M; lib/POE/Stage.pm M; lib/POE/Stage/Resolver.pm M; examples/tcp-server.perl M; lib/POE/Stage/Receiver.pm M; lib/POE/Stage/Echoer.pm M; examples/ping-pong.perl M; examples/01_basics.perl M; examples/wheel-run.perl M; lib/POE/Stage/Ticker.pm M; t/01_all_call_types.t M; lib/POE/Request.pm M Replace POE::Stage's Exporter import() with a custom one. The custom one honors :base, which mucks with the caller's @ISA to add POE::Stage as a base class for the user's. Also removed POE::Stage::TiedAttributes' exporter magic for REQUEST and RESPONSE. Everybody gets to use methods rather than reaching into the implementation from outside. Much better this way, even if it's a little slower. 2006-08-14 00:58:23 (r98) by rcaputo lib/POE/Stage/TiedAttributes.pm M; lib/POE/Stage.pm M Remove the last vestiges of direct $self->{member} access. The new attribute and sub syntax works fine here. 2006-08-14 00:38:16 (r97) by rcaputo examples/self-requesting-stage.perl M; lib/POE/Request/Recall.pm M; examples/log-resolver.perl M; examples/udp-peer.perl M; examples/many-responses.perl M; lib/POE/Stage/TiedAttributes.pm M; lib/POE/Stage.pm M; lib/POE/Stage/Resolver.pm M; examples/tcp-server.perl M; lib/POE/Stage/Receiver.pm M; lib/POE/Stage/Echoer.pm M; examples/ping-pong.perl M; examples/01_basics.perl M; lib/POE/Stage/Ticker.pm M; t/01_all_call_types.t M; lib/POE/Request.pm M Make self(), req() and rsp() for calling methods. Modify the attributes so that :Self is self's data members, and :Req and :Rsp are request and response data members, respectively. :Arg remains argumentative. 2006-08-13 21:23:44 (r96) by rcaputo MANIFEST M; lib/POE/Stage.pm M; lib/POE/Attribute D Replace the tied POE::Attribute classes with Devel::LexAlias. 2006-08-13 20:37:54 (r95) by rcaputo lib/POE/Member D; MANIFEST M; Makefile.PL M; lib/POE/Stage.pm M Replace the POE::Member tied redirects with Devel::LexAlias. A big shout out to Matt S. Trout for pointing me at a wheel I was reinventing poorly: Catalyst::Controller::BindLex. 2006-08-12 07:25:53 (r94) by rcaputo examples/ping-pong.perl M; examples/self-requesting-stage.perl M; examples/log-resolver.perl M; examples/udp-peer.perl M; examples/many-responses.perl M; examples/01_basics.perl M; examples/wheel-run.perl M; examples/tcp-server.perl M Upgrade the examples for the new :Self, :Arg, and :Memb attributes. Some issues arose from this: Argument filtering and hoisting need access to $args directly (for deleting). The "request" and "response" members aren't necessary---they may be attributes---but for now we still must access them via $self->{req} because they don't have sigils like the :Memb system uses internally. 2006-08-12 07:23:58 (r93) by rcaputo; lib/POE/Stage.pm M Add handlers for :Arg, :Memb, and :Self. 2006-08-12 07:23:07 (r92) by rcaputo lib/POE/Member/Hash.pm A; lib/POE/Member A; lib/POE/Member/Scalar.pm A; MANIFEST M; lib/POE/Member/Array.pm A Add classes for tied Stage members. 2006-08-12 07:20:50 (r91) by rcaputo lab/SweetAtUnder.pm M; lab/sweet-at-under.perl M Add proofs of concept for attributes to tie members. 2006-08-12 06:38:51 (r90) by rcaputo lib/POE/Attribute/Request/Array.pm M Fix a reference error in PUSH. 2006-08-09 15:51:45 (r89) by rcaputo; lab/sweet-at-under.perl M Add some sample output. 2006-08-09 15:31:32 (r88) by rcaputo lab/SweetAtUnder.pm A; lab/sweet-at-under.perl A Add an experiment to replace @_ use with scalar attributes. 2006-07-08 23:18:54 (r87) by rcaputo; examples/01_basics.perl M Append sample output to the basics example. =========================== 2006-07-08 23:00:45 v0_0082 =========================== 2006-07-08 22:53:34 (r85) by rcaputo; MANIFEST M Add more examples to the MANIFEST. 2006-07-08 22:51:57 (r84) by rcaputo; examples/01_basics.perl M Add keywords expansion. 2006-07-08 22:51:28 (r83) by rcaputo; Makefile.PL M Add new dependencies. 2006-07-08 22:47:24 (r82) by rcaputo lib/POE/Stage.pm M; lib/POE/Request.pm M; t/01_all_call_types.t M Remove the need for overload.pm magic. 2006-07-08 22:11:46 (r81) by rcaputo lib/POE/Request/Upward.pm M; lib/POE/Request/Recall.pm M; lib/POE/Watcher/Delay.pm M; lib/POE/Watcher/Input.pm M; lib/POE/Watcher.pm M; lib/POE/Stage/TiedAttributes.pm M; lib/POE/Attribute/Request/Scalar.pm M; lib/POE/Watcher/Wheel.pm M; lib/POE/Stage.pm M; lib/POE/Stage/Resolver.pm M; lib/POE/Stage/Receiver.pm M; lib/POE/Request/Return.pm M; lib/POE/Stage/Echoer.pm M; lib/POE/Attribute/Request/Array.pm M; lib/POE/Attribute/Request/Hash.pm M; lib/POE/Stage/Ticker.pm M; lib/POE/Request/Emit.pm M; lib/POE/Request.pm M Major documentation revision. Reword things so they're more true in light of the recent syntax changes. Remove deprecated syntax. Clean up whatever looked iffy at the time. 2006-07-08 16:18:06 (r80) by rcaputo lib/POE/Request/TiedAttributes.pm D Not needed anymore! Yay! 2006-07-08 16:09:07 (r79) by rcaputo examples/ping-pong.perl M; examples/self-requesting-stage.perl M; examples/log-resolver.perl M; examples/udp-peer.perl M; examples/many-responses.perl M; lib/POE/Stage/TiedAttributes.pm M; examples/wheel-run.perl M; lib/POE/Stage/Resolver.pm M; lib/POE/Stage/Ticker.pm M; examples/tcp-server.perl M; lib/POE/Stage/Receiver.pm M Fix the sample stages ande example programs to use the attribute syntax rather than storing to requests directly. 2006-07-08 12:52:19 (r78) by rcaputo lib/POE/Request/Recall.pm M; lib/POE/Request/Upward.pm M; MANIFEST M; lib/POE/Request/TiedAttributes.pm M; lib/POE/Request/Emit.pm M; lib/POE/Request/Return.pm M; lib/POE/Request.pm M; t/01_all_call_types.t M Removed $self->{req}{foo} and $self->{rsp}{foo} support. Replaced their use with my $foo :Req and my $foo :Rsp support, at least in the test program. Still need to go through the examples. 2006-07-08 07:15:18 (r77) by rcaputo lib/POE/Request/Recall.pm M; lib/POE/Request/Upward.pm M; lib/POE/Watcher/Delay.pm M; lib/POE/Watcher/Input.pm M; examples/01_basics.perl M; lib/POE/Watcher/Wheel.pm M; lib/POE/Stage.pm M; lib/POE/Request.pm M Add ":Req($request_object)" attribute syntax. Lexicals declared with this attribute will be available as ":Rsp" for responses to the particular request. 2006-07-08 07:13:57 (r76) by rcaputo lab/SweetState.pm M; lab/sweet-state.perl M Test raw attribute data combined with PadWalker. Works great! 2006-07-05 08:09:57 (r75) by rcaputo; examples/01_basics.perl M Document an idea about using :Req or :Rsp to associate the front-end data with the back end data on the request. 2006-07-05 07:45:17 (r74) by rcaputo examples/01_basics.perl M; lib/POE/Stage.pm M Add initial :Rsp syntax, and extend examples/01_basic.perl to explore it. 2006-07-05 07:26:01 (r73) by rcaputo lib/POE/Attribute/Request/Array.pm M; lab/SweetState.pm M; lib/POE/Attribute/Request/Hash.pm M; examples/01_basics.perl A; lab/sweet-state.perl M; lib/POE/Attribute/Request/Scalar.pm M; lib/POE/Stage.pm M; lib/POE/Request.pm M Create the :Req attribute. Variables declared :Req become part of a request-scoped continuation. 2006-07-05 07:23:44 (r72) by rcaputo lib/POE/Attribute/Request/Array.pm A; lib/POE/Attribute/Request/Hash.pm A; lib/POE/Attribute/Request A; lib/POE/Attribute/Request/Scalar.pm A; lib/POE/Attribute A Add the hidden tie magic behind the :Req attribute. 2006-07-05 01:19:42 (r71) by rcaputo lab/SweetState.pm A; lab/sweet-state.perl M Move the sweet state management code into its own base class. This works, so we can move the attribute interface code into POE::Stage next. Once that's done, I think it needs to hook into the existing request/response state management code. After that, the magic that manages state through $self->{req} and $self->{rsp} can go away. Finally, I think $self->{req} and $self->{rsp} might be better off as accessors. 2006-07-04 08:51:42 (r70) by rcaputo; lab/sweet-state.perl A A prototype for a promising melange of lexical variable attributes, PadWalker, and tie(), giving us "my $foo :Req;" as a replacement for $self->{req}{foo}. 2006-07-04 03:37:08 (r69) by rcaputo; t/01_all_call_types.t M Grrr. Vim should treat this as Perl code. 2006-04-10 18:38:29 (r68) by mathieu lib/POE/Request/Return.pm M; lib/POE/Request.pm M; t/01_all_call_types.t M Default request return type to "return", and default emit type to "emit". 2006-02-06 08:53:33 (r67) by rcaputo; examples/tcp-server.perl M Note a recurring theme. 2006-02-06 08:50:11 (r66) by rcaputo; examples/tcp-server.perl M Remove some commented out code. 2006-02-06 08:48:37 (r65) by rcaputo; lib/POE/Request.pm M Add initial support of on_my_messagetype() methods. This is a raw, unpolished feature and is subject to change. 2006-02-06 08:48:01 (r64) by rcaputo; examples/tcp-server.perl A Add an example of the on_my_messagetype() feature. Stages can handle their own messages by adding on_my_messagetype() methods. These methods are called whenever emit() or return() would send a message of the appropriate type. Subclasses of a stage can handle messages themselves. In this way self-contained stages can be written. 2006-01-30 04:54:18 (r63) by rcaputo; examples/udp-peer.perl M Needed POE::Stage loaded. base.pm doesn't do it for us. 2005-10-12 21:04:48 (r62) by rcaputo; lib/POE/Stage.pm M Wrap the wheel watcher callbacks in block eval so they don't necessarily kill off the entire program. 2005-10-10 05:33:05 (r61) by rcaputo .releaserc M; examples/wheel-run.perl M; lib/POE/Watcher/Wheel.pm M; lib/POE/Watcher/Wheel/Run.pm M Enabele $Id$ on the touched files. 2005-10-10 05:32:00 (r60) by rcaputo examples/wheel-run.perl A; lib/POE/Watcher/Wheel.pm A; lib/POE/Stage.pm M; lib/POE/Watcher/Wheel/Run.pm A; lib/POE/Watcher/Wheel A Add initial POE::Watcher::Wheel support, along with POE::Watcher::Wheel::Run as a proof of concept and a test case. Need to document this better. 2005-10-03 01:03:40 (r59) by rcaputo README D; Makefile.PL M; lib/POE/Stage.pm M Automatically generate the README from POE::Stage's perldoc. 2005-10-03 01:01:55 (r58) by rcaputo; .releaserc A So we can just "release" to fling a new version into the big, blue world. ========================= 2005-10-03 00:49:01 v0_55 ========================= 2005-09-15 07:19:21 (r55) by rcaputo examples/self-requesting-stage.perl M; lib/POE/Request/Upward.pm M; lib/POE/Request/Recall.pm M; examples/log-resolver.perl M; lib/POE/Watcher/Delay.pm M; examples/udp-peer.perl M; lib/POE/Watcher/Input.pm M; examples/many-responses.perl M; lib/POE/Stage/TiedAttributes.pm M; lib/POE/Stage.pm M; lib/POE/Stage/Resolver.pm M; lib/POE/Request/Return.pm M; lib/POE/Stage/Receiver.pm M; lib/POE/Stage/Echoer.pm M; examples/ping-pong.perl M; lib/POE/Stage/Ticker.pm M; lib/POE/Request/Emit.pm M; t/01_all_call_types.t M; lib/POE/Request.pm M I decided to live by committee regarding the syntax for internal vs. external parameters. The vote was overwhelmingly in favor of an args=>{} parameter rather than special syntax to set pass-through arguments apart from others. This commit makes that change, closing ticket:12. 2005-09-15 01:41:34 (r54) by rcaputo lib/POE/Request/Recall.pm M; lib/POE/Request/Upward.pm M; lib/POE/Watcher/Delay.pm M; lib/POE/Watcher/Input.pm M; lib/POE/Watcher.pm M; lib/POE/Stage/TiedAttributes.pm M; lib/POE/Stage.pm M; lib/POE/Request/TiedAttributes.pm M; lib/POE/Stage/Resolver.pm M; lib/POE/Stage/Ticker.pm M; lib/POE/Request/Emit.pm M; lib/POE/Request/Return.pm M; lib/POE/Stage/Receiver.pm M; lib/POE/Request.pm M; lib/POE/Stage/Echoer.pm M Heavily revise the documentation, but it is not proofread. 2005-09-11 06:31:51 (r53) by rcaputo; lib/POE/Stage.pm M Rewrite Stage.pm's documentation. 2005-07-25 17:33:13 (r52) by rcaputo; TODO D Remove TODO. The todo list has been moved into POE::Stage's trac project. 2005-07-17 06:23:27 (r51) by rcaputo; examples/log-resolver.perl M Fix the comments. The leaks mentioned have been fixed. 2005-07-16 01:42:04 (r50) by rcaputo; TODO M Document the classes that stand between POE::Stage::Resolver and POE::Stage::ClientHttp. 2005-07-15 14:58:40 (r49) by rcaputo examples/self-requesting-stage.perl M; examples/log-resolver.perl M; TODO M; lib/POE/Stage/Resolver.pm M; lib/POE/Request.pm M Find and break a circular reference during $request->cancel(), which means it's also broken during return(). 2005-07-15 07:22:59 (r48) by rcaputo examples/log-resolver.perl M; lib/POE/Stage/Resolver.pm M Updated POE::Stage::Resolver to actually do something with Net::DNS::Resolver. Also modernized its interface to self-request from init(). Updated log-resolver.perl to reflect the new usage, and added some addresses to resolve against the Internet. 2005-07-15 07:21:35 (r47) by rcaputo examples/self-requesting-stage.perl A Add a test case for self-requesting stages. It was important to make sure they didn't leak. In fact, they did leak, but this test case illustrates rules to work around that. Later on those rules should be subsumed into POE::Stage. Also, it should be possible to create a POE::Stage::AutoRequest or something that assimilates the self-request pattern. 2005-07-15 07:20:09 (r46) by rcaputo lib/POE/Stage.pm M; lib/POE/Request.pm M Enable stage init() functions to fire off requests on behalf of the stages creating new stages. This is used in the upcoming POE::Stage::Resolver to greatly simplify its public interface. 2005-07-15 02:58:10 (r45) by rcaputo; lab/local-scoped-state.perl A Test whether local() affects exported variables. The answer seems to be no, it doesn't. Maybe wrapping the local() in the proper package will work? 2005-07-14 04:10:32 (r44) by rcaputo; PATTERNS M Discuss stage use patterns in more (or at least fresher) detail. Recommend that stages be use-pattern agnostic if at all possible. It remains to be seen whether they can achieve this in practice. I really hope so. 2005-07-14 03:58:29 (r43) by rcaputo; TODO M Document my progress. Module documentation is done. Resolver stage is prototyped, but it's not complete. 2005-07-14 02:26:06 (r42) by rcaputo lib/POE/Request.pm M; t/01_all_call_types.t M Change the format of stringified request objects. Also add tests to separately verify nummified and stringified requests. 2005-07-13 18:01:04 (r41) by rcaputo lib/POE/Watcher/Delay.pm M; lib/POE/Watcher/Input.pm M; lib/POE/Stage.pm M; lib/POE/Stage/Resolver.pm M; lib/POE/Stage/Ticker.pm M; lib/POE/Stage/Receiver.pm M; lib/POE/Request.pm M; lib/POE/Stage/Echoer.pm M Commit early drafts of all the other documentation. Now every module has something readable! 2005-07-13 08:14:34 (r40) by rcaputo lib/POE/Request/Recall.pm M; lib/POE/Request/Upward.pm M; lib/POE/Watcher/Delay.pm M; lib/POE/Watcher.pm M; lib/POE/Stage/TiedAttributes.pm M; lib/POE/Request/TiedAttributes.pm M; lib/POE/Request/Emit.pm M; lib/POE/Request/Return.pm M; lib/POE/Request.pm M First draft of several documents. Six more .pm files to go, but not tonight. 2005-07-13 03:29:11 (r39) by rcaputo; TODO M Fixed per-request data sequestering. Make a note of it in the TODO. Also note xantus' bug report. 2005-07-12 23:38:42 (r38) by rcaputo README A; MANIFEST A; Makefile.PL A Add the bits that make this a CPAN distribution, although it needs a final name before it can be uploaded. 2005-07-12 23:28:52 (r37) by rcaputo; lib/POE/Stage.pm M Add a $VERSION for MakeMaker and CPAN. 2005-07-12 23:28:13 (r36) by rcaputo; t/01_all_call_types.t M Remove the diag() messages. They don't really help here. 2005-07-12 23:22:01 (r35) by rcaputo lib/POE/Request R; lib/POE/Watcher.pm R; tests D; POE D; lib A; lib/POE/Watcher R; lib/POE/Stage.pm R; lib/POE A; lib/POE/Request.pm R; lib/POE/Stage R Move lib to POE. 2005-07-12 23:18:36 (r34) by rcaputo; POE/Stage/TiedAttributes.pm M Explain why most of POE::Stage's methods are in the tied attributes class instead. 2005-07-12 23:17:39 (r33) by rcaputo examples/all-call-types.perl D; t/01_all_call_types.t A Move the all-call-types test over to the tests directory. 2005-07-12 23:16:56 (r32) by rcaputo; t A Ok, now it's moved. 2005-07-12 23:16:39 (r31) by rcaputo; tests A Adding a tests directory. Unfortunately, now I need to rename it to "t". 2005-07-12 21:24:35 (r30) by rcaputo POE/Stage/TiedAttributes.pm M; POE/Request/TiedAttributes.pm M; POE/Request.pm M; POE/Request/Recall.pm M; POE/Request/Upward.pm M This commit perpetrates a most vile act against POE::Stage as a project in order to provide per-Stage contexts for each request. Prior to this change, a request object acted like shared memory between its creator and its target. Now each end of the transaction has its own per-transaction data space. POE::Stage's first test program finally cleanly passes. 2005-07-11 06:46:59 (r29) by rcaputo lab/stringified-objects.perl A; examples/log-resolver.perl A; examples/udp-peer.perl M; POE/Request/TiedAttributes.pm M; examples/all-call-types.perl M; POE/Stage/Resolver.pm A; examples/many-responses.perl M; lab/lvalue-test.perl M; POE/Request/Emit.pm M; POE/Request/Return.pm M; POE/Request.pm M; POE/Request/Recall.pm M; POE/Request/Upward.pm M Clean up most of the context problems that have plagued POE::Stage while switching to the new POE::Request based contexts. 2005-07-11 06:44:49 (r28) by rcaputo; examples/all-call-types.perl A Test the contexts and special "req" and "rsp" data members for expectations. This makes debugging this stuff SOOOO much easier. I should have done it HOURS ago! 2005-07-10 20:17:35 (r27) by rcaputo; POE/Request/Upward.pm M The array deletes were resetting data members to undef, which is against protocol in this application. The values should be 0 to avoid undefined-value warnings yet retain falsity. This replaces delete() with splice(). 2005-07-10 18:07:12 (r26) by rcaputo POE/Stage/TiedAttributes.pm M; examples/ping-pong.perl M; examples/udp-peer.perl M; POE/Request/TiedAttributes.pm A; POE/Stage/Ticker.pm M; examples/many-responses.perl M; POE/Request/Emit.pm M; POE/Request/Return.pm M; POE/Stage/Receiver.pm M; POE/Request.pm M; POE/Request/Recall.pm M; POE/Request/Upward.pm M Replace the $stage->{req_foo} and $stage->{rsp_foo} syntax with $stage->{req}{foo} and $stage->{rsp}{foo}. This MAY let us also say $stage->{other_request}{foo}, but I won't know for sure until an example program tries it. 2005-07-10 18:05:51 (r25) by rcaputo lab A; lab/lvalue-test.perl A; lab/tied-attributes-test.perl A Create a place for experiments and proofs of concepts. Move some of those programs into that place. 2005-06-22 04:24:08 (r24) by rcaputo POE/Stage/TiedAttributes.pm M; examples/udp-peer.perl M; PATTERNS M; POE/Stage.pm M; examples/many-responses.perl M; TODO M; POE/Request/Return.pm M; POE/Stage/Receiver.pm M; POE/Stage/Echoer.pm M; examples/ping-pong.perl M; POE/Stage/Ticker.pm M; POE/Request/Emit.pm M; POE/Request.pm M; NOTES M; POE/Request/Recall.pm M; POE/Request/Upward.pm M; POE/Watcher/Delay.pm M; POE/Watcher/Input.pm M; POE/Watcher.pm M Add the svn:keywords property to all these files. 2005-06-14 19:45:08 (r23) by rcaputo; PATTERNS M Ramble a little more about response contexts, their side effects, and perceived problems implementing them. 2005-06-14 05:14:15 (r22) by rcaputo; PATTERNS M I'm getting a little closer to resolving the sub-request scoping issues. Here are my latest notes on the subject. 2005-06-14 03:25:02 (r21) by rcaputo POE/Stage/TiedAttributes.pm M; TODO M; POE/Request.pm M Add stubs for /^rsp_/ POE::Stage data members. 2005-06-13 21:08:57 (r20) by rcaputo POE/Stage/TiedAttributes.pm M; examples/ping-pong.perl M; examples/udp-peer.perl M; POE/Stage.pm M; POE/Stage/Ticker.pm M; examples/many-responses.perl M; POE/Request/Emit.pm M; POE/Request/Return.pm M; POE/Stage/Receiver.pm M; POE/Request.pm M; POE/Stage/Echoer.pm M; POE/Request/Recall.pm M; POE/Request/Upward.pm M Replace the internal hash reference implementation of most objects (except the stages) with list references. It's faster, but more importantly it's immune to typos and easier to read: $self->[REQ_FOO] is obviously a request member access. $self->{foo} is therefore a stage member access. In the Stage classes, replace _req and _rsp with req and rsp. Also replace the _foo members with req_foo. rsp_foo will be added shortly. 2005-06-12 01:50:25 (r19) by rcaputo; PATTERNS M Document some new ideas for handling responses from sub-requests. 2005-06-06 07:01:35 (r18) by rcaputo; PATTERNS M Ramble on a bit about new scopes for POE::Stage objects. Specifically ways to match up responses to requests and their bookkeeping data. 2005-06-05 07:04:31 (r17) by rcaputo; PATTERNS M Document more ideas about matching responses to their originating requests. 2005-06-04 18:23:31 (r16) by rcaputo POE/Request/Emit.pm M; POE/Request/Return.pm M; TODO M; POE/Request.pm M; POE/Request/Recall.pm M; POE/Request/Upward.pm A; POE/Watcher/Delay.pm M; POE/Watcher/Input.pm M A round of refactoring. POE::Request::{Emit,Return} have been abstracted into a base class, POE::Request::Upward and some small tweaks. POE::Request's _recall() method was moved to POE::Request::Emit's recall() method since that's the only place it's used. Saves a pointless method call. Cleaned up POE::Watcher::Delay and ::Input a very little. Updated TODO with the current state of the project. 2005-06-04 06:04:38 (r15) by rcaputo; TODO M Map out where to go from here. 2005-06-03 18:25:14 (r14) by rcaputo; TODO M Created an input watcher. 2005-06-03 18:22:33 (r13) by rcaputo POE/Request/Returned.pm D; POE/Request/Return.pm A Renamed Returned.pm to follow the message naming conventions. 2005-06-03 18:22:06 (r12) by rcaputo POE/Stage/TiedAttributes.pm M; examples/ping-pong.perl M; POE/Request/Returned.pm M; PATTERNS M; examples/udp-peer.perl A; POE/Stage.pm M; POE/Request/Response.pm D; POE/Request/Emit.pm A; POE/Stage/Receiver.pm A; POE/Request.pm M; POE/Request/Recall.pm A; POE/Watcher/Delay.pm M; POE/Watcher/Input.pm A MAJOR overhaul of the message-passing between stages. Created recall() and emit(). Spent a lot of time tweaking the message linking to get the semantics right. Created an Input watcher, a UDP Receiver stage, and a test program to exercise them. 2005-06-02 19:11:53 (r11) by rcaputo; POE/Request/Returned.pm A Renamed from Response.pm 2005-06-02 07:09:14 (r10) by rcaputo; PATTERNS M Discuss the UDP example at length, since this is where third-sortie POE::Stage has difficulty. Determine that _rsp might actually work, and investigate a plan. 2005-06-02 02:38:08 (r9) by rcaputo; PATTERNS M Flesh out the idea of connections representing poetalk-like attributes and watchers. Also explain the final TODO in "requests as connections" a little more. 2005-06-02 02:07:39 (r8) by rcaputo; PATTERNS A Initial add. This document tries to catalog the different kinds of component interaction patterns and mechanisms to support them completely. 2005-05-27 14:33:47 (r7) by rcaputo; POE/Watcher/Delay.pm M Change the "method" parameter to "_on_success" to fit with the general naming scheme for callbacks. 2005-05-27 14:33:14 (r6) by rcaputo; POE/Stage/Ticker.pm M Refactor: Move the delay setting code to a common subroutine. 2005-05-27 06:49:43 (r3) by rcaputo; TODO A; NOTES M Add a TODO file for continuity between development sessions. Update the notes a little. 2005-05-27 06:47:01 (r2) by rcaputo; examples/many-responses.perl M The timers were set to REALLY FREAKING TINY for memory leak checking. Changed them back to 1 second to make sure the timers were working. 2005-05-27 06:20:43 (r1) by rcaputo POE/Stage/TiedAttributes.pm A; /trunk A; POE/Stage.pm A; examples/many-responses.perl A; POE/Stage/Echoer.pm A; POE/Request A; examples/ping-pong.perl A; examples A; POE/Watcher A; /branches A; POE/Stage/Ticker.pm A; POE A; POE/Request/Response.pm A; POE/Stage A; POE/Request.pm A; NOTES A; POE/Watcher/Delay.pm A; /tags A; POE/Watcher.pm A Initial import. This is a complete if simple working prototype of an experimental object system. The goal of this project (and others like it) is to explore what it means to be a POE component/object/thingy and attempt to create a standard framework in which they may interact. ============== End of Excerpt ==============