Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Newer
Older
100644 528 lines (373 sloc) 17.442 kB
96ceb8b @rcaputo Initial revision
authored
1 # $Id$
0d6f19d @rcaputo Revised all the manpages. Split the manpages into separate PODs, and
authored
2 # Copyrights and documentation are after __END__.
96ceb8b @rcaputo Initial revision
authored
3
4 package POE;
5
6 use strict;
372c3a1 @rcaputo Tweaking to get Makefile.PL working correctly.
authored
7 use Carp;
8
4dfde7b @rcaputo Ok. So I'm braindead from staring into SOAP modules all day. I
authored
9 use vars qw($VERSION $REVISION);
cf7e511 @sungo up poe version for development
sungo authored
10 $VERSION = '0.2803';
4dfde7b @rcaputo Ok. So I'm braindead from staring into SOAP modules all day. I
authored
11 $REVISION = do {my@r=(q$Revision$=~/\d+/g);sprintf"%d."."%04d"x$#r,@r};
4cdc9c6 @rcaputo macros, optimizations, comments. a lot of changes.
authored
12
372c3a1 @rcaputo Tweaking to get Makefile.PL working correctly.
authored
13 sub import {
14 my $self = shift;
6f253c6 @rcaputo Optimized POE::Preprocessor a bit, and added POE::NFA
authored
15
16 my @sessions = grep(/^(Session|NFA)$/, @_);
17 my @modules = grep(!/^(Kernel|Session|NFA)$/, @_);
18
500fb10 @rcaputo add new tescase for POE::NFA
authored
19 croak "POE::Session and POE::NFA export conflicting constants"
6f253c6 @rcaputo Optimized POE::Preprocessor a bit, and added POE::NFA
authored
20 if grep(/^(Session|NFA)$/, @sessions) > 1;
21
22 # If a session was specified, use that. Otherwise use Session.
23 if (@sessions) {
24 unshift @modules, @sessions;
25 }
26 else {
27 unshift @modules, 'Session';
28 }
372c3a1 @rcaputo Tweaking to get Makefile.PL working correctly.
authored
29
8ae8b71 @rcaputo Propagate the POE::Kernel TRACE and ASSERT constants into any other
authored
30 # Add Kernel back in, whether anybody wanted it or not. Ensure that
31 # it comes before any sessions, since the sessions need to refer to
32 # constants defined in Kernel's namespace.
33 unshift @modules, 'Kernel';
34
8429c0a @rcaputo forward module exports to the package using POE directly
authored
35 my $package = (caller())[0];
36
372c3a1 @rcaputo Tweaking to get Makefile.PL working correctly.
authored
37 my @failed;
38 foreach my $module (@modules) {
8429c0a @rcaputo forward module exports to the package using POE directly
authored
39 my $code = "package $package; use POE::$module;";
40 eval($code);
41 if ($@) {
babfbeb @rcaputo propagate error messages from modules to user
authored
42 warn $@;
43 push(@failed, $module);
44 }
372c3a1 @rcaputo Tweaking to get Makefile.PL working correctly.
authored
45 }
46
47 @failed and croak "could not import qw(" . join(' ', @failed) . ")";
48 }
96ceb8b @rcaputo Initial revision
authored
49
50 #------------------------------------------------------------------------------
51
52 sub new {
53 my $type = shift;
54 croak "$type is not meant to be used directly";
55 }
56
57 #------------------------------------------------------------------------------
58 1;
4cdc9c6 @rcaputo macros, optimizations, comments. a lot of changes.
authored
59
0d6f19d @rcaputo Revised all the manpages. Split the manpages into separate PODs, and
authored
60 __END__
61
62 =head1 NAME
63
641566b @rcaputo I accidentally rewrote the documentation for this module.
authored
64 POE - portable multitasking and networking framework for Perl
0d6f19d @rcaputo Revised all the manpages. Split the manpages into separate PODs, and
authored
65
66 =head1 SYNOPSIS
67
d8788af @rcaputo Big documentation rewrite
authored
68 #!/usr/bin/perl -w
69 use strict;
0d6f19d @rcaputo Revised all the manpages. Split the manpages into separate PODs, and
authored
70
d8788af @rcaputo Big documentation rewrite
authored
71 # Use POE!
0d6f19d @rcaputo Revised all the manpages. Split the manpages into separate PODs, and
authored
72 use POE;
6f47304 @rcaputo clean up POD and whitespace
authored
73
f77c574 @rcaputo revised documentation
authored
74 sub handler_start {
d8788af @rcaputo Big documentation rewrite
authored
75 my ($kernel, $heap, $session) = @_[KERNEL, HEAP, SESSION];
76 print "Session ", $session->ID, " has started.\n";
77 $heap->{count} = 0;
78 $kernel->yield('increment');
79 }
80
f77c574 @rcaputo revised documentation
authored
81 sub handler_increment {
d8788af @rcaputo Big documentation rewrite
authored
82 my ($kernel, $heap, $session) = @_[KERNEL, HEAP, SESSION];
83 print "Session ", $session->ID, " counted to ", ++$heap->{count}, ".\n";
84 $kernel->yield('increment') if $heap->{count} < 10;
85 }
86
f77c574 @rcaputo revised documentation
authored
87 sub handler_stop {
d8788af @rcaputo Big documentation rewrite
authored
88 print "Session ", $_[SESSION]->ID, " has stopped.\n";
89 }
90
641566b @rcaputo I accidentally rewrote the documentation for this module.
authored
91 for (1..10) {
d8788af @rcaputo Big documentation rewrite
authored
92 POE::Session->create(
641566b @rcaputo I accidentally rewrote the documentation for this module.
authored
93 inline_states => {
94 _start => \&handler_start,
95 increment => \&handler_increment,
96 _stop => \&handler_stop,
97 }
d8788af @rcaputo Big documentation rewrite
authored
98 );
99 }
100
641566b @rcaputo I accidentally rewrote the documentation for this module.
authored
101 POE::Kernel->run();
0d6f19d @rcaputo Revised all the manpages. Split the manpages into separate PODs, and
authored
102 exit;
103
333ddb3 @rcaputo document other resources early, so people can find them sooner
authored
104 =head1 DESCRIPTION
105
641566b @rcaputo I accidentally rewrote the documentation for this module.
authored
106 POE is a framework for cooperative, event driven multitasking in Perl.
107 Other languages have similar frameworks. Python has Twisted. TCL has
108 "the event loop".
109
110 POE originally was developed as the core of a persistent object server
111 and runtime environment. It has evolved into a general purpose
112 multitasking and networking framework, encompassing and providing a
113 consistent interface to other event loops such as Event and the Tk and
114 Gtk toolkits.
115
116 POE is written in layers, each building upon the previous. It's
117 therefore possible to use POE at varying levels of abstraction.
118
119 The lowest level uses POE::Kernel and POE::Session. The former class
120 acts as POE's event watcher and dispatcher. The latter encapsulates
121 the notion of an event driven task.
122
123 POE::Wheel classes operate at a slightly higher level. They plug into
124 sessions and perform very common, general tasks. For example,
125 POE::Wheel::ReadWrite performs buffered I/O.
126
127 Unlike cheese, wheels do not stand alone. They are customized by
128 POE::Driver and POE::Filter classes. Using the proper filter, a
129 ReadWrite wheel can read and write streams, lines, fixed-length
130 blocks, HTTP requests and responses, and so on.
131
132 The highest level of POE programming uses components. They may
133 perform narrowly defined tasks, such as POE::Component::Child (on the
134 CPAN). Often they encapsulate nearly everything necessary for an
135 entire program.
136
137 Every level eventually boils down to the lowest common
138 denominator---POE::Kernel and POE::Session. Because of this, classes
139 coexist and cooperate at every level of abstraction.
140
141 =head1 DOCUMENTATION ROADMAP
142
143 POE's documentation rewards the methodical reader. Skim everything,
144 and you should have a pretty good idea of what's available and where
145 to find it later.
146
147 You're reading the main POE document. It's the general entry point to
148 POE's documentation.
149
150 Documentation for POE's basic features is spread across POE::Kernel
151 and POE::Session in non-intuitive ways. POE turns out to be difficult
152 to document from either module's perspective, so there is a lot of
153 overlap and cross-referencing. We have plans to rewrite them, but
154 that only helps if you want to join in the fun.
155
156 POE::NFA is a second kind of session---a Non-deterministic Finite
157 Automaton class, which happens to be driven by events. This is an
158 abstract state machine, which can be either Mealy or Moore (or a
159 little bit of both, or neither) depending on how it's configured.
160
161 POE::Wheel, POE::Driver, POE::Filter, and POE::Component describe
162 entire classes of modules in broad strokes. Where applicable, they
163 document the features common among their subclasses. This is
164 confusing, since most people are inclined to read POE::Wheel::Foo and
165 assume that something doesn't exist if it's not there.
166
167 There are also some helper classes. POE::Pipe is the base class for
168 POE::Pipe::OneWay and POE::Pipe::TwoWay. They are portable pipe
169 creation functions, mainly for POE's test suite. POE::Preprocessor is
170 a macro language implemented as a source filter.
171
172 POE is a relatively large system. It includes internal classes that
173 allow it to be customized without needing to know too much about the
174 system as a whole. POE::Queue describes POE's event queue interface.
175 POE::Loop covers the commonalities of every event loop POE supports.
176 POE::Resource discusses the notion of system resources, which
177 correspond to event watchers and generators in other systems.
178
179 The SEE ALSO sections of each major module class will list the
180 subclasses beneath it. This document's SEE ALSO lists every module in
181 the distribution.
182
183 Finally, there are many POE resources on the web. The CPAN contains a
184 growing number of POE modules. POE's wiki, at
185 L<http://poe.perl.org/>, includes tutorials, an extensive set of
186 examples, documentation, and more.
4108539 @rcaputo Clean up the overview of Filter::Reference after someone (I forget!
authored
187
641566b @rcaputo I accidentally rewrote the documentation for this module.
authored
188 =head1 COMPATIBILITY ISSUES
d8788af @rcaputo Big documentation rewrite
authored
189
641566b @rcaputo I accidentally rewrote the documentation for this module.
authored
190 The developers of POE strive to make it as portable as possible. If
191 you discover a problem, please e-mail a report to
192 <bug-POE@rt.cpan.org>. If you can, include error messages, perl -V
193 output, and/or test cases. The more information you can provide, the
194 quicker we can turn around a fix. Patches are also welcome, of
195 course.
dddc865 @rcaputo I discovered the podchecker utility, and ran it on POE's
authored
196
641566b @rcaputo I accidentally rewrote the documentation for this module.
authored
197 POE is known to work on FreeBSD, MacOS X, Linux, Solaris, and other
198 forms of UNIX. It also works to one extent or another on various
199 versions of Windows, including 98, ME, NT, 2000, and XP. It should
200 work on OS/2, although we no longer have a developer who uses it. It
201 has been reported to work on MacOS 9, of all things.
d8788af @rcaputo Big documentation rewrite
authored
202
641566b @rcaputo I accidentally rewrote the documentation for this module.
authored
203 POE has been tested with Perl versions as far back as 5.004_03 and as
204 recent as 5.8.3.
d8788af @rcaputo Big documentation rewrite
authored
205
641566b @rcaputo I accidentally rewrote the documentation for this module.
authored
206 Thanks go out to the CPAN testers, who have dedicated resources to
207 running new modules on a variety of platforms. The latest POE tests
208 are visible at <http://testers.cpan.org/search?request=dist&dist=POE>.
0d6f19d @rcaputo Revised all the manpages. Split the manpages into separate PODs, and
authored
209
641566b @rcaputo I accidentally rewrote the documentation for this module.
authored
210 We maintain our own test results at <http://eekeek.org/poe-tests/>.
211 You may participate by running
0d6f19d @rcaputo Revised all the manpages. Split the manpages into separate PODs, and
authored
212
641566b @rcaputo I accidentally rewrote the documentation for this module.
authored
213 perl Makefile.PL
214 make uploadreport
d8788af @rcaputo Big documentation rewrite
authored
215
641566b @rcaputo I accidentally rewrote the documentation for this module.
authored
216 from POE's source directory. A set of tests will be run, and their
217 results will be uploaded to our test page.
d8788af @rcaputo Big documentation rewrite
authored
218
641566b @rcaputo I accidentally rewrote the documentation for this module.
authored
219 We also try to cover all of POE with our test suite, although we only
220 succeed in exercising about 70% of its code at any given time. A
221 coverage report is online at
222 <http://poe.perl.org/?POE's_test_coverage_report>.
0d6f19d @rcaputo Revised all the manpages. Split the manpages into separate PODs, and
authored
223
d8788af @rcaputo Big documentation rewrite
authored
224 Specific issues:
0d6f19d @rcaputo Revised all the manpages. Split the manpages into separate PODs, and
authored
225
d8788af @rcaputo Big documentation rewrite
authored
226 =over 2
0d6f19d @rcaputo Revised all the manpages. Split the manpages into separate PODs, and
authored
227
f77c574 @rcaputo revised documentation
authored
228 =item Various Unices
d8788af @rcaputo Big documentation rewrite
authored
229
230 No known problems.
231
f77c574 @rcaputo revised documentation
authored
232 =item OS/2
ad0d40f @rcaputo 0.08_05
authored
233
641566b @rcaputo I accidentally rewrote the documentation for this module.
authored
234 No known problems. POE has no OS/2 tester as of version 0.1206.
ad0d40f @rcaputo 0.08_05
authored
235
f77c574 @rcaputo revised documentation
authored
236 =item Windows
0d6f19d @rcaputo Revised all the manpages. Split the manpages into separate PODs, and
authored
237
3ddd789 @rcaputo Updated Windows and MacOS support info. in POE's man page.
authored
238 POE seems to work very nicely with Perl compiled for CygWin. If you
239 must use ActiveState Perl, please use build 631 or newer.
626fc71 @rcaputo Bump the version number and halfheartedly revise the man page. The
authored
240
641566b @rcaputo I accidentally rewrote the documentation for this module.
authored
241 POE's Windows port is current maintained by Rocco Caputo, but he has
242 only limited knowledge of Windows development. Please contact Rocco
243 if you or someone you know would like to accelerate POE's Windows
244 support.
245
246 Sean Puckett, Douglas Couch, and Andrew Chen have helped to bring
247 POE's Windows support this far.
3ddd789 @rcaputo Updated Windows and MacOS support info. in POE's man page.
authored
248
641566b @rcaputo I accidentally rewrote the documentation for this module.
authored
249 TODO: I'm sure there are others. Find them in the changelog and thank
250 them here.
0d6f19d @rcaputo Revised all the manpages. Split the manpages into separate PODs, and
authored
251
f77c574 @rcaputo revised documentation
authored
252 =item MacOS
d8788af @rcaputo Big documentation rewrite
authored
253
641566b @rcaputo I accidentally rewrote the documentation for this module.
authored
254 No known problems on MacOS X.
626fc71 @rcaputo Bump the version number and halfheartedly revise the man page. The
authored
255
641566b @rcaputo I accidentally rewrote the documentation for this module.
authored
256 Mac Classic (versions 9.x and before) was reported to work at one
257 time, but it seems like a lost cause unless someone would like to step
258 forward and make it happen.
d8788af @rcaputo Big documentation rewrite
authored
259
260 =back
0d6f19d @rcaputo Revised all the manpages. Split the manpages into separate PODs, and
authored
261
d8788af @rcaputo Big documentation rewrite
authored
262 =head1 SYSTEM REQUIREMENTS
263
641566b @rcaputo I accidentally rewrote the documentation for this module.
authored
264 POE has only one absolute external requirement: Filter::Util::Call
265 version 1.04 or later. All the other modules are optional, although
266 people tend to install them anyway.
267
268 POE's installer will prompt for required and optional modules. It's
269 important to read the prompts and only install what you will need.
270 You may always reinstall it later, adding new prerequisites as the
271 need arises. B<Note that Tk and Gtk support require very large
272 dependencies.>
0d6f19d @rcaputo Revised all the manpages. Split the manpages into separate PODs, and
authored
273
641566b @rcaputo I accidentally rewrote the documentation for this module.
authored
274 Time::HiRes is recommended. POE will work without it, but alarms and
275 other features will be much more accurate with it.
3ddd789 @rcaputo Updated Windows and MacOS support info. in POE's man page.
authored
276
641566b @rcaputo I accidentally rewrote the documentation for this module.
authored
277 POE::Wheel::Run requires a working fork() implementation.
278 Unfortunately ActivePerl's fork() emulation is not sufficient for it.
279 CygWin's fork() works just fine however.
0d6f19d @rcaputo Revised all the manpages. Split the manpages into separate PODs, and
authored
280
f77c574 @rcaputo revised documentation
authored
281 POE relies heavily on constants in the POSIX module. Some of the
626fc71 @rcaputo Bump the version number and halfheartedly revise the man page. The
authored
282 constants aren't defined on some platforms. POE works around this as
641566b @rcaputo I accidentally rewrote the documentation for this module.
authored
283 best it can, but problems occasionally crop up. Please let us know if
284 you run into problems, and we'll work with you to fix them.
d8788af @rcaputo Big documentation rewrite
authored
285
641566b @rcaputo I accidentally rewrote the documentation for this module.
authored
286 Filter::Reference needs a module to serialize data for transporting it
287 across a network. It will use Storable, FreezeThaw, YAML, or some
288 other package with freeze() and thaw() methods. It can also use
289 Compress::Zlib to conserve bandwidth and reduce latency over slow
290 links, but it's not required.
d8788af @rcaputo Big documentation rewrite
authored
291
641566b @rcaputo I accidentally rewrote the documentation for this module.
authored
292 If you want to write web servers, you'll need to install libwww-perl,
293 which requires libnet. This is a small world of modules that includes
294 HTTP::Status, HTTP::Request, HTTP::Date, and HTTP::Response. They are
295 generally good to have, and recent versions of Perl include them.
d8788af @rcaputo Big documentation rewrite
authored
296
641566b @rcaputo I accidentally rewrote the documentation for this module.
authored
297 Programs that use Wheel::Curses require the Curses module, which in
298 turn requires some sort of curses library.
a4c9dd9 @rcaputo update Windows support docs, and a few other bits
authored
299
f77c574 @rcaputo revised documentation
authored
300 =head1 SUPPORT RESOURCES
d8788af @rcaputo Big documentation rewrite
authored
301
f77c574 @rcaputo revised documentation
authored
302 These are Internet resources where you may find more information about
303 POE.
d8788af @rcaputo Big documentation rewrite
authored
304
f77c574 @rcaputo revised documentation
authored
305 =over 2
306
641566b @rcaputo I accidentally rewrote the documentation for this module.
authored
307 =item POE's Request Tracker
308
309 Bug reports, suggestions, and feedback of all kinds should be e-mailed
310 to <bug-POE@rt.cpan.org>. It will be entered into our request queue
311 where it will remain until addressed. If your return address is
312 valid, you will be notified when the status of your request changes.
f77c574 @rcaputo revised documentation
authored
313
641566b @rcaputo I accidentally rewrote the documentation for this module.
authored
314 =item POE's Mailing List
315
316 POE has a mailing list where you can discuss it with the community at
317 large. You can receive subscription information by sending e-mail:
d8788af @rcaputo Big documentation rewrite
authored
318
f77c574 @rcaputo revised documentation
authored
319 To: poe-help@perl.org
320 Subject: (anything will do)
d8788af @rcaputo Big documentation rewrite
authored
321
641566b @rcaputo I accidentally rewrote the documentation for this module.
authored
322 The message body is ignored.
d8788af @rcaputo Big documentation rewrite
authored
323
641566b @rcaputo I accidentally rewrote the documentation for this module.
authored
324 =item POE's Web Site
d814423 @rcaputo doc patch and 19_filterchange.t Storable tweak
authored
325
641566b @rcaputo I accidentally rewrote the documentation for this module.
authored
326 POE's web site contains the latest development snapshot along with
327 examples, tutorials, and other fun stuff. It's at
328 <http://poe.perl.org/>.
d8788af @rcaputo Big documentation rewrite
authored
329
f77c574 @rcaputo revised documentation
authored
330 =item SourceForge
d8788af @rcaputo Big documentation rewrite
authored
331
641566b @rcaputo I accidentally rewrote the documentation for this module.
authored
332 POE is developed at SourceForge. The project is hosted at
626fc71 @rcaputo Bump the version number and halfheartedly revise the man page. The
authored
333 http://sourceforge.net/projects/poe/
d8788af @rcaputo Big documentation rewrite
authored
334
335 =back
336
f77c574 @rcaputo revised documentation
authored
337 =head1 SEE ALSO
d8788af @rcaputo Big documentation rewrite
authored
338
641566b @rcaputo I accidentally rewrote the documentation for this module.
authored
339 POE::Kernel, POE::Session, POE::NFA
f77c574 @rcaputo revised documentation
authored
340
641566b @rcaputo I accidentally rewrote the documentation for this module.
authored
341 POE::Wheel, POE::Wheel::Curses, POE::Wheel::FollowTail,
342 POE::Wheel::ListenAccept, POE::Wheel::ReadLine, POE::Wheel::ReadWrite,
343 POE::Wheel::Run, POE::Wheel::SocketFactory
f77c574 @rcaputo revised documentation
authored
344
641566b @rcaputo I accidentally rewrote the documentation for this module.
authored
345 POE::Driver, POE::Driver::SysRW
296aa91 @rcaputo finally add Dieter Pearcey's stackable filters
authored
346
641566b @rcaputo I accidentally rewrote the documentation for this module.
authored
347 POE::Filter, POE::Filter::Block, POE::Filter::Grep,
348 POE::Filter::HTTPD, POE::Filter::Line, POE::Filter::Map,
349 POE::Filter::RecordBlock, POE::Filter::Reference,
350 POE::Filter::Stackable, POE::Filter::Stream
296aa91 @rcaputo finally add Dieter Pearcey's stackable filters
authored
351
641566b @rcaputo I accidentally rewrote the documentation for this module.
authored
352 POE::Component, POE::Component::Client::TCP,
353 POE::Component::Server::TCP
f77c574 @rcaputo revised documentation
authored
354
641566b @rcaputo I accidentally rewrote the documentation for this module.
authored
355 POE::Loop, POE::Loop::Event, POE::Loop::Gtk, POE::Loop::Poll,
356 POE::Loop::Select, POE::Loop::Tk
f77c574 @rcaputo revised documentation
authored
357
641566b @rcaputo I accidentally rewrote the documentation for this module.
authored
358 POE::Pipe, POE::Pipe::OneWay, POE::Pipe::TwoWay
f77c574 @rcaputo revised documentation
authored
359
641566b @rcaputo I accidentally rewrote the documentation for this module.
authored
360 POE::Preprocessor
f77c574 @rcaputo revised documentation
authored
361
641566b @rcaputo I accidentally rewrote the documentation for this module.
authored
362 POE::Queue, POE::Queue::Array
296aa91 @rcaputo finally add Dieter Pearcey's stackable filters
authored
363
641566b @rcaputo I accidentally rewrote the documentation for this module.
authored
364 POE::Resource, POE::Resource::Aliases, POE::Resource::Events,
365 POE::Resource::Extrefs, POE::Resource::FileHandles,
366 POE::Resource::Performance, POE::Resource::SIDs,
367 POE::Resource::Sessions, POE::Resource::Signals
f77c574 @rcaputo revised documentation
authored
368
369 =head1 BUGS
0d6f19d @rcaputo Revised all the manpages. Split the manpages into separate PODs, and
authored
370
641566b @rcaputo I accidentally rewrote the documentation for this module.
authored
371 The t/*.t tests only cover about 70% of POE.
372
373 Outstanding issues, including wish list items, are available in POE's
374 queue at L<http://rt.cpan.org/>.
ad0d40f @rcaputo 0.08_05
authored
375
d8788af @rcaputo Big documentation rewrite
authored
376 =head1 AUTHORS & COPYRIGHT
0d6f19d @rcaputo Revised all the manpages. Split the manpages into separate PODs, and
authored
377
641566b @rcaputo I accidentally rewrote the documentation for this module.
authored
378 POE is the combined effort of several people. Please let us know if
379 someone is missing from this list.
380
381 TODO: Scour the CHANGES file for credit where it's due.
d8788af @rcaputo Big documentation rewrite
authored
382
383 =over 2
384
726aee4 @rcaputo credit more people
authored
385 =item Ann Barcomb
d8788af @rcaputo Big documentation rewrite
authored
386
726aee4 @rcaputo credit more people
authored
387 Ann Barcomb is <kudra@domaintje.com>, aka C<kudra>. Ann contributed
626fc71 @rcaputo Bump the version number and halfheartedly revise the man page. The
authored
388 large portions of POE::Simple and the code that became the ReadWrite
da6a2f2 @rcaputo Matt Sergeant contributed POE::Kernel::Poll, an event loop substrate
authored
389 support in POE::Component::Server::TCP. Her ideas also inspired
390 Client::TCP component, introduced in version 0.1702.
d8788af @rcaputo Big documentation rewrite
authored
391
f77c574 @rcaputo revised documentation
authored
392 =item Artur Bergman
d8788af @rcaputo Big documentation rewrite
authored
393
641566b @rcaputo I accidentally rewrote the documentation for this module.
authored
394 Artur Bergman is <sky@cpan.org>. He contributed many hours' work into
395 POE and quite a lot of ideas. Years later, I decide he's right and
396 actually implement them.
0d6f19d @rcaputo Revised all the manpages. Split the manpages into separate PODs, and
authored
397
f77c574 @rcaputo revised documentation
authored
398 Artur is the author of Filter::HTTPD and Filter::Reference, as well as
641566b @rcaputo I accidentally rewrote the documentation for this module.
authored
399 bits and pieces throughout POE. His feedback, testing, design and
400 inspiration have been instrumental in making POE what it is today.
0d6f19d @rcaputo Revised all the manpages. Split the manpages into separate PODs, and
authored
401
641566b @rcaputo I accidentally rewrote the documentation for this module.
authored
402 Artur is investing his time heavily into perl 5's iThreads and PONIE
403 at the moment. This project has far-reaching implications for POE's
404 future.
726aee4 @rcaputo credit more people
authored
405
406 =item Jos Boumans
407
408 Jos Boumans is <boumans@frg.eur.nl>, aka C<Co-Kane>. Jos is a major
641566b @rcaputo I accidentally rewrote the documentation for this module.
authored
409 driving force behind the POE::Simple movement and has helped inspire
410 the POE::Components for TCP clients and servers.
726aee4 @rcaputo credit more people
authored
411
412 =item Matt Cashner
413
957c350 @sungo update my email address
sungo authored
414 Matt Cashner is <sungo@pobox.com>, aka C<sungo>. Matt is one of POE's
641566b @rcaputo I accidentally rewrote the documentation for this module.
authored
415 core developers. He's spearheaded the movement to simplify POE for
416 new users, flattening the learning curve and making the system more
417 accessible to everyone. He uses the system in mission critical
418 applications, folding feedback and features back into the distribution
419 for everyone's enjoyment.
726aee4 @rcaputo credit more people
authored
420
421 =item Andrew Chen
422
626fc71 @rcaputo Bump the version number and halfheartedly revise the man page. The
authored
423 Andrew Chen is <achen-poe@micropixel.com>. Andrew is the resident
424 POE/Windows guru. He contributes much needed testing for Solaris on
425 the SPARC and Windows on various Intel platforms.
726aee4 @rcaputo credit more people
authored
426
f77c574 @rcaputo revised documentation
authored
427 =item Douglas Couch
0d6f19d @rcaputo Revised all the manpages. Split the manpages into separate PODs, and
authored
428
641566b @rcaputo I accidentally rewrote the documentation for this module.
authored
429 Douglas Couch is <dscouch@purdue.edu>. Douglas helped port and
430 maintain POE for Windows early on.
0d6f19d @rcaputo Revised all the manpages. Split the manpages into separate PODs, and
authored
431
726aee4 @rcaputo credit more people
authored
432 =item Jeffrey Goff
433
434 Jeffrey Goff is <jgoff@blackboard.com>. Jeffrey is the author of
435 several POE modules, including a tokenizing filter and a component for
436 managing user information, PoCo::UserBase. He's also co-author of "A
437 Beginner's Introduction to POE" at www.perl.com.
438
f77c574 @rcaputo revised documentation
authored
439 =item Philip Gwyn
d8788af @rcaputo Big documentation rewrite
authored
440
f77c574 @rcaputo revised documentation
authored
441 Philip Gwyn is <gwynp@artware.qc.ca>. He extended the Wheels I/O
442 abstraction to support hot-swappable filters, and he eventually
626fc71 @rcaputo Bump the version number and halfheartedly revise the man page. The
authored
443 convinced Rocco that unique session and kernel IDs were a good thing.
d8788af @rcaputo Big documentation rewrite
authored
444
f77c574 @rcaputo revised documentation
authored
445 Philip also enhanced Filter::Reference to support different
641566b @rcaputo I accidentally rewrote the documentation for this module.
authored
446 serialization methods. He has also improved POE's quality by finding
447 and fixing several bugs. He provided POE a much needed code review
448 around version 0.06.
d8788af @rcaputo Big documentation rewrite
authored
449
726aee4 @rcaputo credit more people
authored
450 =item Arnar M. Hrafnkelsson
451
452 Arnar is <addi@umich.edu>. Addi tested POE and POE::Component::IRC on
453 Windows, finding bugs and testing fixes. He appears throughout the
641566b @rcaputo I accidentally rewrote the documentation for this module.
authored
454 Changes file. He has also written "cpoe", which is a POE-like library
455 for C.
726aee4 @rcaputo credit more people
authored
456
f77c574 @rcaputo revised documentation
authored
457 =item Dave Paris
d8788af @rcaputo Big documentation rewrite
authored
458
f77c574 @rcaputo revised documentation
authored
459 Dave Paris is <dparis@w3works.com>. Dave tested and benchmarked POE
460 around version 0.05, discovering some subtle (and not so subtle)
461 timing problems. The pre-forking server sample was his idea.
641566b @rcaputo I accidentally rewrote the documentation for this module.
authored
462 Versions 0.06 and later scaled to higher loads because of his work.
463 He has contributed a lot of testing and feedback, much of which is
464 tagged in the Changes file as a-mused. The man is scarily good at
465 testing and troubleshooting.
761b0d6 @rcaputo speed up kernel; fix bad filehandle in test 4
authored
466
f77c574 @rcaputo revised documentation
authored
467 =item Dieter Pearcey
0d6f19d @rcaputo Revised all the manpages. Split the manpages into separate PODs, and
authored
468
c575666 @rcaputo added Filter::Block and Dieter's FollowTail patches; finishing touche…
authored
469 Dieter Pearcey is <dieter@bullfrog.perlhacker.org>. He goes by
626fc71 @rcaputo Bump the version number and halfheartedly revise the man page. The
authored
470 several Japanese nicknames. Dieter's current area of expertise is in
471 Wheels and Filters. He greatly improved Wheel::FollowTail, and his
472 Filter contributions include the basic Block filter, as well as
473 Stackable, RecordBlock, Grep and Map.
c575666 @rcaputo added Filter::Block and Dieter's FollowTail patches; finishing touche…
authored
474
f77c574 @rcaputo revised documentation
authored
475 =item Robert Seifer
0d6f19d @rcaputo Revised all the manpages. Split the manpages into separate PODs, and
authored
476
d8788af @rcaputo Big documentation rewrite
authored
477 Robert Seifer is <e-mail unknown>. He rotates IRC nicknames
478 regularly.
0d6f19d @rcaputo Revised all the manpages. Split the manpages into separate PODs, and
authored
479
d8788af @rcaputo Big documentation rewrite
authored
480 Robert contributed entirely too much time, both his own and his
481 computers, towards the detection and eradication of a memory
482 corruption bug that POE tickled in earlier Perl versions. In the end,
483 his work produced a simple compile-time hack that worked around a
484 problem relating to anonymous subs, scope and @{} processing.
0d6f19d @rcaputo Revised all the manpages. Split the manpages into separate PODs, and
authored
485
da6a2f2 @rcaputo Matt Sergeant contributed POE::Kernel::Poll, an event loop substrate
authored
486 =item Matt Sergeant
487
488 Matt contributed POE::Kernel::Poll, a more efficient way to watch
489 multiple files than select().
490
726aee4 @rcaputo credit more people
authored
491 =item Richard Soderberg
492
493 Richard Soderberg is <poe@crystalflame.net>, aka C<coral>. Richard is
494 a collaborator on several side projects involving POE. His work
495 provides valuable testing and feedback from a user's point of view.
496
f77c574 @rcaputo revised documentation
authored
497 =item Dennis Taylor
197063a @rcaputo gutted and rewrote Filter::Line's innards for extra options
authored
498
499 Dennis Taylor is <dennis@funkplanet.com>. Dennis has been testing,
500 debugging and patching bits here and there, such as Filter::Line which
501 he improved by leaps in 0.1102. He's also the author of
641566b @rcaputo I accidentally rewrote the documentation for this module.
authored
502 POE::Component::IRC, the widely popular POE-based successor to his
503 wildly popular Net::IRC library.
197063a @rcaputo gutted and rewrote Filter::Line's innards for extra options
authored
504
f77c574 @rcaputo revised documentation
authored
505 =item Others?
0d6f19d @rcaputo Revised all the manpages. Split the manpages into separate PODs, and
authored
506
f77c574 @rcaputo revised documentation
authored
507 Please contact the author if you've been forgotten.
0d6f19d @rcaputo Revised all the manpages. Split the manpages into separate PODs, and
authored
508
509 =back
510
511 =head2 Author
512
d8788af @rcaputo Big documentation rewrite
authored
513 =over 2
0d6f19d @rcaputo Revised all the manpages. Split the manpages into separate PODs, and
authored
514
f77c574 @rcaputo revised documentation
authored
515 =item Rocco Caputo
0d6f19d @rcaputo Revised all the manpages. Split the manpages into separate PODs, and
authored
516
626fc71 @rcaputo Bump the version number and halfheartedly revise the man page. The
authored
517 Rocco Caputo is <rcaputo@cpan.org>. POE is his brainchild.
0d6f19d @rcaputo Revised all the manpages. Split the manpages into separate PODs, and
authored
518
641566b @rcaputo I accidentally rewrote the documentation for this module.
authored
519 Except where otherwise noted, POE is Copyright 1998-2004 Rocco Caputo.
0d6f19d @rcaputo Revised all the manpages. Split the manpages into separate PODs, and
authored
520 All rights reserved. POE is free software; you may redistribute it
521 and/or modify it under the same terms as Perl itself.
522
d8788af @rcaputo Big documentation rewrite
authored
523 =back
524
525 Thank you for reading!
526
0d6f19d @rcaputo Revised all the manpages. Split the manpages into separate PODs, and
authored
527 =cut
Something went wrong with that request. Please try again.