Skip to content
Newer
Older
100644 709 lines (507 sloc) 25.3 KB
0d6f19d @rcaputo Revised all the manpages. Split the manpages into separate PODs, and
authored Jun 15, 1999
1 # Copyrights and documentation are after __END__.
96ceb8b @rcaputo Initial revision
authored Aug 15, 1998
2
3 package POE;
4
5 use strict;
ea6d5ca This patch is the beginning of RT#1692, hopefully I got them all, hel…
Larwan Berke authored Dec 2, 2004
6 use Carp qw( croak );
372c3a1 @rcaputo Tweaking to get Makefile.PL working correctly.
authored Aug 15, 1998
7
5959004 @rcaputo Remove $Id$ and $Revision$ tags. No significant code changed despite
authored Aug 15, 2009
8 use vars qw($VERSION);
8f2bd20 @rcaputo New version for a new release. Require a new POE::Test::Loops.
authored Nov 18, 2010
9 $VERSION = '1.294'; # NOTE - Should be #.### (three decimal places)
4cdc9c6 @rcaputo macros, optimizations, comments. a lot of changes.
authored Mar 24, 2000
10
372c3a1 @rcaputo Tweaking to get Makefile.PL working correctly.
authored Aug 16, 1998
11 sub import {
12 my $self = shift;
6f253c6 @rcaputo Optimized POE::Preprocessor a bit, and added POE::NFA
authored Oct 31, 2000
13
3c01254 Tweak the @modules logic, thanks to TonyC ( it might not be perfect b…
Larwan Berke authored Mar 2, 2010
14 my @loops = grep(/^(?:XS::)?Loop::/, @_);
6f253c6 @rcaputo Optimized POE::Preprocessor a bit, and added POE::NFA
authored Oct 31, 2000
15 my @sessions = grep(/^(Session|NFA)$/, @_);
3c01254 Tweak the @modules logic, thanks to TonyC ( it might not be perfect b…
Larwan Berke authored Mar 3, 2010
16 my @modules = grep(!/^(Kernel|Session|NFA|(?:XS::)?Loop::[\w:]+)$/, @_);
6f253c6 @rcaputo Optimized POE::Preprocessor a bit, and added POE::NFA
authored Oct 31, 2000
17
5d1b97a Remove the POE::Loop modules from the modules that need to be loaded
Martijn van Beers authored Oct 12, 2004
18 croak "can't use multiple event loops at once"
19 if (@loops > 1);
500fb10 @rcaputo add new tescase for POE::NFA
authored Jan 1, 2001
20 croak "POE::Session and POE::NFA export conflicting constants"
3c01254 Tweak the @modules logic, thanks to TonyC ( it might not be perfect b…
Larwan Berke authored Mar 3, 2010
21 if scalar @sessions > 1;
6f253c6 @rcaputo Optimized POE::Preprocessor a bit, and added POE::NFA
authored Oct 31, 2000
22
23 # If a session was specified, use that. Otherwise use Session.
24 if (@sessions) {
25 unshift @modules, @sessions;
26 }
27 else {
28 unshift @modules, 'Session';
29 }
372c3a1 @rcaputo Tweaking to get Makefile.PL working correctly.
authored Aug 16, 1998
30
cb72f14 @rcaputo Applying a patch by Martijn van Beers. This change adds syntax for
authored Oct 12, 2004
31 my $package = caller();
32 my @failed;
33
34 # Load POE::Kernel in the caller's package. This is separate
35 # because we need to push POE::Loop classes through POE::Kernel's
36 # import().
37
38 {
39 my $loop = "";
40 if (@loops) {
5d1b97a Remove the POE::Loop modules from the modules that need to be loaded
Martijn van Beers authored Oct 13, 2004
41 $loop = "{ loop => '" . shift (@loops) . "' }";
cb72f14 @rcaputo Applying a patch by Martijn van Beers. This change adds syntax for
authored Oct 12, 2004
42 }
43 my $code = "package $package; use POE::Kernel $loop;";
44 # warn $code;
45 eval $code;
46 if ($@) {
47 warn $@;
48 push @failed, "Kernel"
e5bc354 @rcaputo Instrument some code in POE's import, especially the code for explicit
authored Sep 4, 2006
49 }
cb72f14 @rcaputo Applying a patch by Martijn van Beers. This change adds syntax for
authored Oct 12, 2004
50 }
8ae8b71 @rcaputo Propagate the POE::Kernel TRACE and ASSERT constants into any other
authored Nov 2, 2003
51
cb72f14 @rcaputo Applying a patch by Martijn van Beers. This change adds syntax for
authored Oct 12, 2004
52 # Load all the others.
8429c0a @rcaputo forward module exports to the package using POE directly
authored Jan 15, 1999
53
372c3a1 @rcaputo Tweaking to get Makefile.PL working correctly.
authored Aug 16, 1998
54 foreach my $module (@modules) {
8429c0a @rcaputo forward module exports to the package using POE directly
authored Jan 16, 1999
55 my $code = "package $package; use POE::$module;";
cb72f14 @rcaputo Applying a patch by Martijn van Beers. This change adds syntax for
authored Oct 12, 2004
56 # warn $code;
8429c0a @rcaputo forward module exports to the package using POE directly
authored Jan 16, 1999
57 eval($code);
58 if ($@) {
babfbeb @rcaputo propagate error messages from modules to user
authored Jan 15, 1999
59 warn $@;
60 push(@failed, $module);
61 }
372c3a1 @rcaputo Tweaking to get Makefile.PL working correctly.
authored Aug 16, 1998
62 }
63
64 @failed and croak "could not import qw(" . join(' ', @failed) . ")";
65 }
96ceb8b @rcaputo Initial revision
authored Aug 15, 1998
66
67 1;
4cdc9c6 @rcaputo macros, optimizations, comments. a lot of changes.
authored Mar 25, 2000
68
0d6f19d @rcaputo Revised all the manpages. Split the manpages into separate PODs, and
authored Jun 15, 1999
69 __END__
70
71 =head1 NAME
72
eb6532b @rcaputo Rely on POE::Test::Loops 1.021, which should be everywhere by now.
authored Jul 27, 2009
73 POE - portable multitasking and networking framework for any event loop
0d6f19d @rcaputo Revised all the manpages. Split the manpages into separate PODs, and
authored Jun 15, 1999
74
75 =head1 SYNOPSIS
76
d8788af @rcaputo Big documentation rewrite
authored May 21, 2000
77 #!/usr/bin/perl -w
78 use strict;
0d6f19d @rcaputo Revised all the manpages. Split the manpages into separate PODs, and
authored Jun 15, 1999
79
a57acda @rcaputo Document "use POE" magic.
authored Aug 19, 2007
80 use POE; # Auto-includes POE::Kernel and POE::Session.
6f47304 @rcaputo clean up POD and whitespace
authored Jan 21, 2001
81
f77c574 @rcaputo revised documentation
authored Dec 20, 2000
82 sub handler_start {
d8788af @rcaputo Big documentation rewrite
authored May 22, 2000
83 my ($kernel, $heap, $session) = @_[KERNEL, HEAP, SESSION];
84 print "Session ", $session->ID, " has started.\n";
85 $heap->{count} = 0;
86 $kernel->yield('increment');
87 }
88
f77c574 @rcaputo revised documentation
authored Dec 20, 2000
89 sub handler_increment {
d8788af @rcaputo Big documentation rewrite
authored May 22, 2000
90 my ($kernel, $heap, $session) = @_[KERNEL, HEAP, SESSION];
91 print "Session ", $session->ID, " counted to ", ++$heap->{count}, ".\n";
92 $kernel->yield('increment') if $heap->{count} < 10;
93 }
94
f77c574 @rcaputo revised documentation
authored Dec 20, 2000
95 sub handler_stop {
d8788af @rcaputo Big documentation rewrite
authored May 22, 2000
96 print "Session ", $_[SESSION]->ID, " has stopped.\n";
97 }
98
641566b @rcaputo I accidentally rewrote the documentation for this module.
authored Jan 19, 2004
99 for (1..10) {
d8788af @rcaputo Big documentation rewrite
authored May 22, 2000
100 POE::Session->create(
641566b @rcaputo I accidentally rewrote the documentation for this module.
authored Jan 20, 2004
101 inline_states => {
102 _start => \&handler_start,
103 increment => \&handler_increment,
104 _stop => \&handler_stop,
105 }
d8788af @rcaputo Big documentation rewrite
authored May 22, 2000
106 );
107 }
108
641566b @rcaputo I accidentally rewrote the documentation for this module.
authored Jan 20, 2004
109 POE::Kernel->run();
0d6f19d @rcaputo Revised all the manpages. Split the manpages into separate PODs, and
authored Jun 15, 1999
110 exit;
111
333ddb3 @rcaputo document other resources early, so people can find them sooner
authored Apr 3, 2001
112 =head1 DESCRIPTION
113
793304b @rcaputo Revise documentation in a major way.
authored Aug 18, 2007
114 POE is a framework for cooperative, event driven multitasking and
115 networking in Perl. Other languages have similar frameworks. Python
116 has Twisted. TCL has "the event loop".
641566b @rcaputo I accidentally rewrote the documentation for this module.
authored Jan 20, 2004
117
793304b @rcaputo Revise documentation in a major way.
authored Aug 18, 2007
118 POE provides a unified interface for several other event loops,
eb6532b @rcaputo Rely on POE::Test::Loops 1.021, which should be everywhere by now.
authored Jul 27, 2009
119 including select(), L<IO::Poll|IO::Poll>, L<Glib>, L<Gtk>, L<Tk>,
120 L<Wx>, and L<Gtk2>. Many of these event loop interfaces were written
121 by others, with the help of POE::Test::Loops. They may be found on
122 the CPAN.
123
124 POE achieves its its high degree of portability to different operating
125 systems and Perl versions by being written entirely in Perl. CPAN
126 hosts optional XS modules for POE if speed is more desirable than
127 portability.
128
129 POE is designed in layers. Each layer builds atop the lower level
130 ones. Programs are free to use POE at any level of abstraction, and
793304b @rcaputo Revise documentation in a major way.
authored Aug 18, 2007
131 different levels can be mixed and matched seamlessly within a single
eb6532b @rcaputo Rely on POE::Test::Loops 1.021, which should be everywhere by now.
authored Jul 27, 2009
132 program. Remember, though, that higher-level abstractions often
133 require more resources than lower-level ones. The conveniences they
134 provide are not free.
641566b @rcaputo I accidentally rewrote the documentation for this module.
authored Jan 20, 2004
135
793304b @rcaputo Revise documentation in a major way.
authored Aug 18, 2007
136 POE's bundled abstraction layers are the tip of a growing iceberg.
eb6532b @rcaputo Rely on POE::Test::Loops 1.021, which should be everywhere by now.
authored Jul 27, 2009
137 L<Sprocket>, L<POE::Stage|POE::Stage>, and other CPAN distributions
138 build upon this work. You're encouraged to look around.
4108539 @rcaputo Clean up the overview of Filter::Reference after someone (I forget!
authored Jun 28, 2002
139
793304b @rcaputo Revise documentation in a major way.
authored Aug 18, 2007
140 No matter how high you go, though, it all boils down to calls to
eb6532b @rcaputo Rely on POE::Test::Loops 1.021, which should be everywhere by now.
authored Jul 27, 2009
141 L<POE::Kernel|POE::Kernel>. So your down-to-earth code can easily
142 cooperate with stratospheric systems.
d8788af @rcaputo Big documentation rewrite
authored May 22, 2000
143
793304b @rcaputo Revise documentation in a major way.
authored Aug 18, 2007
144 =head2 Layer 1: Kernel and Sessions
dddc865 @rcaputo I discovered the podchecker utility, and ran it on POE's
authored Oct 26, 2002
145
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the …
Philip Gwyn authored Dec 8, 2007
146 The lowest public layer is comprised of L<POE::Kernel|POE::Kernel>,
147 L<POE::Session|POE::Session>, and other session types.
d8788af @rcaputo Big documentation rewrite
authored May 22, 2000
148
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the …
Philip Gwyn authored Dec 8, 2007
149 L<POE::Kernel|POE::Kernel> does most of the heavy lifting. It provides a portable
793304b @rcaputo Revise documentation in a major way.
authored Aug 18, 2007
150 interface for filehandle activity detection, multiple alarms and other
151 timers, signal handling, and other less-common features.
d8788af @rcaputo Big documentation rewrite
authored May 22, 2000
152
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the …
Philip Gwyn authored Dec 8, 2007
153 L<POE::Session|POE::Session> and derived classes encapsulate the notion of an event
793304b @rcaputo Revise documentation in a major way.
authored Aug 18, 2007
154 driven task. They also customize event dispatch to a particular
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the …
Philip Gwyn authored Dec 8, 2007
155 calling convention. L<POE::NFA|POE::NFA>, for example, is more of a proper state
2c3758b Mid-sized documenation update
Philip Gwyn authored Dec 8, 2007
156 machine. The CPAN has several other kinds of sessions.
0d6f19d @rcaputo Revised all the manpages. Split the manpages into separate PODs, and
authored Jun 15, 1999
157
19bfcd5 @rcaputo Minor edits to POE and POE::Kernel. Major revisions to POE::Session.
authored Oct 26, 2007
158 Everything ultimately builds on these classes or the concepts they
159 implement. If you're short on time, the things to read besides this
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the …
Philip Gwyn authored Dec 8, 2007
160 are L<POE::Kernel|POE::Kernel> and L<POE::Session|POE::Session>.
19bfcd5 @rcaputo Minor edits to POE and POE::Kernel. Major revisions to POE::Session.
authored Oct 26, 2007
161
793304b @rcaputo Revise documentation in a major way.
authored Aug 18, 2007
162 =head2 Layer 2: Wheels, Filters, and Drivers
0d6f19d @rcaputo Revised all the manpages. Split the manpages into separate PODs, and
authored Jun 15, 1999
163
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the …
Philip Gwyn authored Dec 8, 2007
164 POE::Wheel objects are dynamic mix-ins for POE::Session instances. These
165 "wheels" perform very common, generic tasks in a highly reusable and
166 customizable way. L<POE::Wheel::ReadWrite|POE::Wheel::ReadWrite>, for
167 example, implements non-blocking buffered I/O. Nearly everybody needs this,
168 so why require people to reinvent it all the time?
0d6f19d @rcaputo Revised all the manpages. Split the manpages into separate PODs, and
authored Jun 15, 1999
169
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the …
Philip Gwyn authored Dec 8, 2007
170 L<POE::Filter|POE::Filter> objects customize wheels in a modular way. Filters act as
793304b @rcaputo Revise documentation in a major way.
authored Aug 18, 2007
171 I/O layers, turning raw streams into structured data, and serializing
2c3758b Mid-sized documenation update
Philip Gwyn authored Dec 8, 2007
172 structures into something suitable for streams. The CPAN also has several
793304b @rcaputo Revise documentation in a major way.
authored Aug 18, 2007
173 of these.
0d6f19d @rcaputo Revised all the manpages. Split the manpages into separate PODs, and
authored Jun 15, 1999
174
2c3758b Mid-sized documenation update
Philip Gwyn authored Dec 8, 2007
175 Drivers are where the wheels meet the road. In this case, the road is
793304b @rcaputo Revise documentation in a major way.
authored Aug 18, 2007
176 some type of file handle. Drivers do the actual reading and writing
177 in a standard way so wheels don't need to know the difference between
178 send() and syswrite().
d8788af @rcaputo Big documentation rewrite
authored May 22, 2000
179
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the …
Philip Gwyn authored Dec 8, 2007
180 L<POE::Driver|POE::Driver> objects get relatively short shrift because very few are
181 needed. The most common driver, L<POE::Driver::SysRW|POE::Driver::SysRW> is ubiquitous and
2c3758b Mid-sized documenation update
Philip Gwyn authored Dec 8, 2007
182 also the default, so most people will never need to specify one.
183
793304b @rcaputo Revise documentation in a major way.
authored Aug 18, 2007
184 =head2 Layer 3: Components
ad0d40f @rcaputo 0.08_05
authored Jan 5, 2000
185
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the …
Philip Gwyn authored Dec 8, 2007
186 L<POE::Component|POE::Component> classes are essentially Perl classes that use POE to
793304b @rcaputo Revise documentation in a major way.
authored Aug 18, 2007
187 perform tasks in a non-blocking or cooperative way. This is a very
188 broad definition, and POE components are all over the abstraction map.
ad0d40f @rcaputo 0.08_05
authored Jan 5, 2000
189
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the …
Philip Gwyn authored Dec 8, 2007
190 Many components, such as L<POE::Component::Server::SMTP|POE::Component::Server::SMTP>, encapsulate the
793304b @rcaputo Revise documentation in a major way.
authored Aug 18, 2007
191 generic details of an entire application. Others perform rather
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the …
Philip Gwyn authored Dec 8, 2007
192 narrow tasks, such as L<POE::Component::DirWatch::Object|POE::Component::DirWatch::Object>.
0d6f19d @rcaputo Revised all the manpages. Split the manpages into separate PODs, and
authored Jun 15, 1999
193
793304b @rcaputo Revise documentation in a major way.
authored Aug 18, 2007
194 POE components are often just plain Perl objects. The previously
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the …
Philip Gwyn authored Dec 8, 2007
195 mentioned L<POE::Component::DirWatch::Object|POE::Component::DirWatch::Object> uses L<Moose|Moose>. Other object
793304b @rcaputo Revise documentation in a major way.
authored Aug 18, 2007
196 and meta-object frameworks are compatible.
626fc71 @rcaputo Bump the version number and halfheartedly revise the man page. The
authored Jan 3, 2002
197
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the …
Philip Gwyn authored Dec 8, 2007
198 Also of interest is L<POE::Component::Generic|POE::Component::Generic>, which is allows you to create
2c3758b Mid-sized documenation update
Philip Gwyn authored Dec 8, 2007
199 a POE component from nearly nearly any blocking module.
200
201 There are quite a lot of components on the CPAN.
202 L<http://search.cpan.org/search?query=poe+component&mode=all>
641566b @rcaputo I accidentally rewrote the documentation for this module.
authored Jan 20, 2004
203
793304b @rcaputo Revise documentation in a major way.
authored Aug 18, 2007
204 =head2 Layer 4 and Beyond: Frameworks and Object Metaphors
3ddd789 @rcaputo Updated Windows and MacOS support info. in POE's man page.
authored Mar 4, 2002
205
793304b @rcaputo Revise documentation in a major way.
authored Aug 18, 2007
206 It's possible to abstract POE entirely behind a different framework.
207 In fact we encourage people to write domain-specific abstractions that
208 entirely hide POE if necessary. The nice thing here is that even at
209 these high levels of abstraction, things will continue to interoperate
210 all the way down to layer 1.
0d6f19d @rcaputo Revised all the manpages. Split the manpages into separate PODs, and
authored Jun 15, 1999
211
2c3758b Mid-sized documenation update
Philip Gwyn authored Dec 8, 2007
212 Two examples of ultra-high level abstraction are L<Sprocket>, a networking
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the …
Philip Gwyn authored Dec 8, 2007
213 framework that does its own thing, and L<POE::Stage|POE::Stage>, which is POE's
2c3758b Mid-sized documenation update
Philip Gwyn authored Dec 8, 2007
214 creator's attempt to formalize and standardize POE components.
215
216 It is also possible to communicate between POE processes. This is called
217 IKC, for I<Inter-Kernel Communication>. There are a few IKC components on
218 the CPAN (L<http://search.cpan.org/search?query=IKC&mode=all>), notably
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the …
Philip Gwyn authored Dec 8, 2007
219 L<POE::Component::IKC|POE::Component::IKC> and L<POE::TIKC|POE::TIKC>.
d8788af @rcaputo Big documentation rewrite
authored May 22, 2000
220
793304b @rcaputo Revise documentation in a major way.
authored Aug 18, 2007
221 =head2 Layer 0: POE's Internals
626fc71 @rcaputo Bump the version number and halfheartedly revise the man page. The
authored Jan 4, 2002
222
2c3758b Mid-sized documenation update
Philip Gwyn authored Dec 8, 2007
223 POE's layered architecture continues below the surface. POE's guts are
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the …
Philip Gwyn authored Dec 8, 2007
224 broken into specific L<POE::Loop|POE::Loop> classes for each event loop it supports.
225 Internals are divided up by type, giving L<POE::Resource|POE::Resource> classes for
2c3758b Mid-sized documenation update
Philip Gwyn authored Dec 8, 2007
226 Aliases, Controls, Events, Extrefs, FileHandles, SIDs, Sessions, Signals,
227 and Statistics.
d8788af @rcaputo Big documentation rewrite
authored May 22, 2000
228
793304b @rcaputo Revise documentation in a major way.
authored Aug 18, 2007
229 POE::Kernel's APIs are extensible through POE::API mix-in classes.
230 Some brave souls have even published new APIs on CPAN, such as
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the …
Philip Gwyn authored Dec 8, 2007
231 L<POE::API::Peek|POE::API::Peek> (which gives you access to some of the internal
232 L<POE::Resource|POE::Resource> methods).
0d6f19d @rcaputo Revised all the manpages. Split the manpages into separate PODs, and
authored Jun 15, 1999
233
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the …
Philip Gwyn authored Dec 8, 2007
234 By design, it's possible to implement new L<POE::Kernel|POE::Kernel> guts by creating
235 another L<POE::Resource|POE::Resource> class. One can then expose the functionality with
2c3758b Mid-sized documenation update
Philip Gwyn authored Dec 8, 2007
236 a new POE::API mix-in.
793304b @rcaputo Revise documentation in a major way.
authored Aug 18, 2007
237
238 =head1 DOCUMENTATION ROADMAP
239
240 You're reading the main POE documentation. It's the general entry
241 point to the world of POE. You already know this, however, so let's
242 talk about something more interesting.
243
244 =head2 Basic Features
245
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the …
Philip Gwyn authored Dec 8, 2007
246 POE's basic features are documented mainly in L<POE::Kernel|POE::Kernel> and
247 L<POE::Session|POE::Session>. Methods are documented in the classes that implement
793304b @rcaputo Revise documentation in a major way.
authored Aug 18, 2007
248 them. Broader concepts are covered in the most appropriate class, and
249 sometimes they are divided among classes that share in their
250 implementation.
251
8f0c235 @rcaputo Move the POE.pm use lines to POE::Kernel. Mark that contributors need…
authored Aug 19, 2007
252 =head2 Basic Usage
253
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the …
Philip Gwyn authored Dec 8, 2007
254 Basic usage, even for POE.pm, is documented in L<POE::Kernel|POE::Kernel>. That's
8f0c235 @rcaputo Move the POE.pm use lines to POE::Kernel. Mark that contributors need…
authored Aug 19, 2007
255 where most of POE's work is done, and POE.pm is little more than a
256 class loader.
257
793304b @rcaputo Revise documentation in a major way.
authored Aug 18, 2007
258 =head2 @_[KERNEL, HEAP, etc.]
259
260 Event handler calling conventions, that weird C<@_[KERNEL, HEAP]>
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the …
Philip Gwyn authored Dec 8, 2007
261 stuff, is documented in L<POE::Session|POE::Session>. That's because POE::Session
793304b @rcaputo Revise documentation in a major way.
authored Aug 18, 2007
262 implements the calling convention, and other session types often do it
263 differently.
264
265 =head2 Base Classes Document Common Features
d8788af @rcaputo Big documentation rewrite
authored May 22, 2000
266
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the …
Philip Gwyn authored Dec 8, 2007
267 The L<POE::Wheel|POE::Wheel>, L<POE::Driver|POE::Driver>,
268 L<POE::Filter|POE::Filter>, and L<POE::Component|POE::Component> base
269 classes describe what's common among each class. It's a good idea to at
270 least skim the base class documentation since the subclasses tend not to
2c3758b Mid-sized documenation update
Philip Gwyn authored Dec 8, 2007
271 rehash the common things.
0d6f19d @rcaputo Revised all the manpages. Split the manpages into separate PODs, and
authored Jun 15, 1999
272
e979f83 Fix invalid POD links
Larwan Berke authored May 28, 2010
273 L<POE::Queue|POE::Queue>, L<POE::Resource|POE::Resource>, and L<POE::Loop|POE::Loop> document the
793304b @rcaputo Revise documentation in a major way.
authored Aug 18, 2007
274 concepts and sometimes the standard interfaces behind multiple
37d4499 @rcaputo Apply Chris Fedde's massive doc patch, resolving rt.cpan.org ticket
authored Jun 20, 2008
275 subclasses. You're encouraged to have a look.
3ddd789 @rcaputo Updated Windows and MacOS support info. in POE's man page.
authored Mar 5, 2002
276
793304b @rcaputo Revise documentation in a major way.
authored Aug 18, 2007
277 =head2 Helper Classes
278
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the …
Philip Gwyn authored Dec 8, 2007
279 POE includes some helper classes for portability. L<POE::Pipe|POE::Pipe>, and its
280 subclasses L<POE::Pipe::OneWay|POE::Pipe::OneWay> and L<POE::Pipe::TwoWay|POE::Pipe::TwoWay> are portable pipes.
793304b @rcaputo Revise documentation in a major way.
authored Aug 18, 2007
281
282 =head2 Event Loop Bridges
283
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the …
Philip Gwyn authored Dec 8, 2007
284 L<POE::Loop|POE::Loop> documents and specifies the interface for all of POE's event
793304b @rcaputo Revise documentation in a major way.
authored Aug 18, 2007
285 loop bridges. The individual classes may document specific details,
286 but generally they adhere to the spec strongly enough that they don't
287 need to.
288
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the …
Philip Gwyn authored Dec 8, 2007
289 Many of the existing L<POE::Loop|POE::Loop> bridges provided in POE's base
793304b @rcaputo Revise documentation in a major way.
authored Aug 18, 2007
290 distribution will move out to separate distributions shortly. The
291 documentation will probably remain the same, however.
292
293 =head2 POE::Queue and POE::Queue::Array
294
295 POE's event queue is basically a priority heap implemented as an
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the …
Philip Gwyn authored Dec 8, 2007
296 ordered array. L<POE::Queue|POE::Queue> documents the standard interface for POE
297 event queues, and L<POE::Queue::Array|POE::Queue::Array> implements the ordered array
298 queue. Tony Cook has released L<POE::XS::Queue::Array|POE::XS::Queue::Array>, which is a
299 drop-in C replacement for L<POE::Queue::Array|POE::Queue::Array>. You might give it a try
793304b @rcaputo Revise documentation in a major way.
authored Aug 18, 2007
300 if you need more performance. POE's event queue is some of the
301 hottest code in the system.
302
303 =head2 This Section Isn't Complete
304
305 Help organize the documentation. Obviously we can't think of
306 everything. We're well aware of this and welcome audience
307 participation.
308
309 =head2 See SEE ALSO
310
311 Wherever possible, the SEE ALSO section will cross-reference one
312 module to related ones.
313
314 =head2 Don't Forget the Web
315
316 Finally, there are many POE resources on the web. The CPAN contains a
317 growing number of POE modules. L<http://poe.perl.org/> hosts POE's
318 wiki, which includes tutorials, an extensive set of examples,
319 documentation, and more. Plus it's a wiki, so you can trivially pitch
320 in your two cents.
321
322 =head1 SYSTEM REQUIREMENTS
323
324 POE's basic requirements are rather light. Most are included with
325 modern versions of Perl, and the rest (if any) should be generally
326 portable by now.
327
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the …
Philip Gwyn authored Dec 8, 2007
328 L<Time::HiRes|Time::HiRes> is highly recommended, even for older Perls that don't
2c3758b Mid-sized documenation update
Philip Gwyn authored Dec 8, 2007
329 include it. POE will work without it, but alarms and other features will be
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the …
Philip Gwyn authored Dec 8, 2007
330 much more accurate if it's included. L<POE::Kernel|POE::Kernel> will use Time::HiRes
793304b @rcaputo Revise documentation in a major way.
authored Aug 18, 2007
331 automatically if it's available.
d8788af @rcaputo Big documentation rewrite
authored May 22, 2000
332
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the …
Philip Gwyn authored Dec 8, 2007
333 L<POE::Filter::Reference|POE::Filter::Reference> needs a module to serialize data for transporting
334 it across a network. It will use L<Storable|Storable>, L<FreezeThaw|FreezeThaw>, L<YAML|YAML>, or
2c3758b Mid-sized documenation update
Philip Gwyn authored Dec 8, 2007
335 some other package with freeze() and thaw() methods. It can also use
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the …
Philip Gwyn authored Dec 8, 2007
336 L<Compress::Zlib|Compress::Zlib> to conserve bandwidth and reduce latency over slow links, but
2c3758b Mid-sized documenation update
Philip Gwyn authored Dec 8, 2007
337 it's not required.
d8788af @rcaputo Big documentation rewrite
authored May 22, 2000
338
2c3758b Mid-sized documenation update
Philip Gwyn authored Dec 8, 2007
339 If you want to write web servers, you'll need to install libwww-perl, which
340 requires libnet. This is a small world of modules that includes
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the …
Philip Gwyn authored Dec 8, 2007
341 L<HTTP::Status|HTTP::Status>, L<HTTP::Request|HTTP::Request>,
342 L<HTTP::Date|HTTP::Date>, and L<HTTP::Response|HTTP::Response>. They are
343 generally good to have, and modern versions of Perl even include them.
d8788af @rcaputo Big documentation rewrite
authored May 22, 2000
344
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the …
Philip Gwyn authored Dec 8, 2007
345 Programs that use L<POE::Wheel::Curses|POE::Wheel::Curses> will of course
346 require the L<Curses> module, which in turn requires some sort of
347 curses library.
a4c9dd9 @rcaputo update Windows support docs, and a few other bits
authored Apr 30, 2001
348
2c3758b Mid-sized documenation update
Philip Gwyn authored Dec 8, 2007
349 If you're using POE with Tk, you'll need L<Tk> installed.
d8788af @rcaputo Big documentation rewrite
authored May 22, 2000
350
793304b @rcaputo Revise documentation in a major way.
authored Aug 18, 2007
351 And other obvious things. Let us know if we've overlooked a
352 non-obvious detail.
d8788af @rcaputo Big documentation rewrite
authored May 22, 2000
353
793304b @rcaputo Revise documentation in a major way.
authored Aug 18, 2007
354 =head1 COMPATIBILITY ISSUES
f77c574 @rcaputo revised documentation
authored Dec 20, 2000
355
793304b @rcaputo Revise documentation in a major way.
authored Aug 18, 2007
356 One of POE's design goals is to be as portable as possible. That's
357 why it's written in "Plain Perl". XS versions of POE modules are
37d4499 @rcaputo Apply Chris Fedde's massive doc patch, resolving rt.cpan.org ticket
authored Jun 20, 2008
358 available as third-party distributions. Parts of POE that require
793304b @rcaputo Revise documentation in a major way.
authored Aug 18, 2007
359 nonstandard libraries are optional, and not having those libraries
360 should not prevent POE from installing.
641566b @rcaputo I accidentally rewrote the documentation for this module.
authored Jan 20, 2004
361
793304b @rcaputo Revise documentation in a major way.
authored Aug 18, 2007
362 Despite Chris Williams' efforts, we can't test POE everywhere. Please
363 see the GETTING HELP section if you run into a problem.
d8788af @rcaputo Big documentation rewrite
authored May 22, 2000
364
793304b @rcaputo Revise documentation in a major way.
authored Aug 18, 2007
365 POE is expected to work on most forms of UNIX, including FreeBSD,
366 MacOS X, Linux, Solaris. Maybe even AIX and QNX, but we're not sure.
d8788af @rcaputo Big documentation rewrite
authored May 22, 2000
367
9b1c689 @rcaputo Several doc changes to fix issues reported by garu in irc.perl.org
authored Jan 5, 2010
368 POE is also tested on Windows XP, using the latest version of
369 ActiveState, Strawberry and Cygwin Perl. POE is fully supported with
370 Strawberry Perl, as it's included in the Strawberry distribution.
d8788af @rcaputo Big documentation rewrite
authored May 22, 2000
371
793304b @rcaputo Revise documentation in a major way.
authored Aug 18, 2007
372 OS/2 and MacOS 9 have been reported to work in the past, but nobody
373 seems to be testing there anymore. Reports and patches are still
374 welcome.
d814423 @rcaputo doc patch and 19_filterchange.t Storable tweak
authored Aug 15, 2000
375
793304b @rcaputo Revise documentation in a major way.
authored Aug 18, 2007
376 Past versions of POE have been tested with Perl versions as far back
377 as 5.004_03 and as recent as "blead", today's development build. We
378 can no longer guarantee each release will work everywhere, but we will
379 be happy to work with you if you need special support for a really old
380 system.
d8788af @rcaputo Big documentation rewrite
authored May 22, 2000
381
793304b @rcaputo Revise documentation in a major way.
authored Aug 18, 2007
382 POE's quality is due in large part to the fine work of Chris Williams
383 and the other CPAN testers. They have dedicated resources towards
384 ensuring CPAN distributions pass their own tests, and we watch their
385 reports religiously. You can, too. The latest POE test reports can
168b592 @rcaputo Fix a cpantesters.org link that gcola reported as 404 in irc.perl.org…
authored Jan 27, 2010
386 be found at L<http://cpantesters.org/distro/P/POE.html>.
d8788af @rcaputo Big documentation rewrite
authored May 22, 2000
387
793304b @rcaputo Revise documentation in a major way.
authored Aug 18, 2007
388 Thanks also go out to Benjamin Smith and the 2006 Google Summer of
389 Code. Ben was awarded a grant to improve POE's test suite, which he
390 did admirably.
391
392 =head2 Windows Issues
393
394 POE seems to work very nicely with Perl compiled for Cygwin. If you
395 must use ActiveState Perl, please use the absolute latest version.
396 ActiveState Perl's compatibility fluctuates from one build to another,
397 so we tend not to support older releases.
398
399 Windows and ActiveState Perl are considered an esoteric platform due
400 to the complex interactions between various versions. POE therefore
401 relies on user feedback and support here.
402
403 A number of people have helped bring POE's Windows support this far,
404 through contributions of time, patches, and other resources. Some of
405 them are: Sean Puckett, Douglas Couch, Andrew Chen, Uhlarik Ondoej,
406 Nick Williams, and Chris Williams (no relation).
407
e766708 @apocalypse Add doc blurb about pty issues on linux
apocalypse authored Jan 26, 2011
408 =head2 Linux/Unix Issues
409
410 =head3 pty woes
411
412 Some distributions chose to not completely setup the pseudo-tty
413 support. This is needed for L<POE::Wheel::Run> to interact with the
414 subprocess. If you see something like this while running C<make test>
415 please look at your distribution's documentation on how to fix it. For
416 example, on Debian-based systems the solution was to execute
417 "sudo apt-get install udev".
418
419 t/30_loops/io_poll/wheel_run.t ..................... 1/99
420 pty_allocate(nonfatal): posix_openpt(): No such file or directory at /usr/local/lib/perl/5.10.0/IO/Pty.pm line 24.
421 ...
422 Cannot open a pty at /home/apoc/poe/blib/lib/POE/Wheel/Run.pm line 251
423 Compilation failed in require at t/30_loops/io_poll/wheel_run.t line 24.
424 # Looks like you planned 99 tests but ran 5.
425 # Looks like your test exited with 22 just after 5.
426 t/30_loops/io_poll/wheel_run.t ..................... Dubious, test returned 22 (wstat 5632, 0x1600)
427
793304b @rcaputo Revise documentation in a major way.
authored Aug 18, 2007
428 =head2 Other Compatibility Issues
429
430 None currently known. See GETTING HELP below if you've run into
431 something.
432
433 =head1 GETTING HELP
434
435 POE's developers take pride in its quality. If you encounter a
436 problem, please let us know.
437
438 =head2 POE's Request Tracker
439
440 You're welcome to e-mail questions and bug reports to
441 <bug-POE@rt.cpan.org>. This is not a realtime support channel,
442 though. If you need a more immediate response, try one of the methods
443 below.
444
445 =head2 POE's Mailing List
446
447 POE has a dedicated mailing list where developers and users discuss
448 the software and its use. You're welcome to join us. Send an e-mail
449 to <poe-help@perl.org> for subscription instructions. The subject and
450 message body are ignored.
451
452 =head2 POE's Web Site
453
454 <http://poe.perl.org> contains recent information, tutorials, and
455 examples. It's also a wiki, so people are invited to share tips and
456 code snippets there as well.
457
23912e3 @rcaputo Add a reference to POE's subversion repository, per Zoffix's
authored Mar 10, 2008
458 =head2 POE's Source Code
459
460 The following command will fetch the most current version of POE into
461 the "poe" subdirectory:
462
463 svn co https://poe.svn.sourceforge.net/svnroot/poe poe
464
793304b @rcaputo Revise documentation in a major way.
authored Aug 18, 2007
465 =head2 SourceForge
466
467 http://sourceforge.net/projects/poe/ is POE's project page.
468
469 =head2 Internet Relay Chat (IRC)
470
471 irc.perl.org channel #poe is an informal place to waste some time and
472 maybe even discuss Perl and POE. Consider an SSH relay if your
473 workplace frowns on IRC. But only if they won't fire you if you're
474 caught.
475
476 =head2 Personal Support
477
478 Unfortunately we don't have resources to provide free one-on-one
479 personal support anymore. We'll do it for a fee, though. Send Rocco
480 an e-mail via his CPAN address.
d8788af @rcaputo Big documentation rewrite
authored May 22, 2000
481
f77c574 @rcaputo revised documentation
authored Dec 20, 2000
482 =head1 SEE ALSO
d8788af @rcaputo Big documentation rewrite
authored May 22, 2000
483
793304b @rcaputo Revise documentation in a major way.
authored Aug 18, 2007
484 Broken down by abstraction layer.
485
486 =head2 Layer 1
487
2c3758b Mid-sized documenation update
Philip Gwyn authored Dec 8, 2007
488 L<POE::Kernel>, L<POE::Session>, L<POE::NFA>
f77c574 @rcaputo revised documentation
authored Dec 20, 2000
489
793304b @rcaputo Revise documentation in a major way.
authored Aug 18, 2007
490 =head2 Layer 2
491
2c3758b Mid-sized documenation update
Philip Gwyn authored Dec 8, 2007
492 L<POE::Wheel>, L<POE::Wheel::Curses>, L<POE::Wheel::FollowTail>,
493 L<POE::Wheel::ListenAccept>, L<POE::Wheel::ReadLine>, L<POE::Wheel::ReadWrite>,
494 L<POE::Wheel::Run>, L<POE::Wheel::SocketFactory>
f77c574 @rcaputo revised documentation
authored Dec 20, 2000
495
2c3758b Mid-sized documenation update
Philip Gwyn authored Dec 8, 2007
496 L<POE::Driver>, L<POE::Driver::SysRW>
296aa91 @rcaputo finally add Dieter Pearcey's stackable filters
authored Apr 8, 2001
497
2c3758b Mid-sized documenation update
Philip Gwyn authored Dec 8, 2007
498 L<POE::Filter>, L<POE::Filter::Block>, L<POE::Filter::Grep>,
499 L<POE::Filter::HTTPD>, L<POE::Filter::Line>, L<POE::Filter::Map>,
500 L<POE::Filter::RecordBlock>, L<POE::Filter::Reference>,
501 L<POE::Filter::Stackable>, L<POE::Filter::Stream>
296aa91 @rcaputo finally add Dieter Pearcey's stackable filters
authored Apr 8, 2001
502
793304b @rcaputo Revise documentation in a major way.
authored Aug 18, 2007
503 =head2 Layer 3
504
2c3758b Mid-sized documenation update
Philip Gwyn authored Dec 8, 2007
505 L<POE::Component>, L<POE::Component::Client::TCP>,
506 L<POE::Component::Server::TCP>
f77c574 @rcaputo revised documentation
authored Dec 20, 2000
507
793304b @rcaputo Revise documentation in a major way.
authored Aug 18, 2007
508 =head2 Layer 0
509
2c3758b Mid-sized documenation update
Philip Gwyn authored Dec 8, 2007
510 L<POE::Loop>, L<POE::Loop::Event>, L<POE::Loop::Gtk>, L<POE::Loop::IO_Poll>,
511 L<POE::Loop::Select>, L<POE::Loop::Tk>
f77c574 @rcaputo revised documentation
authored Dec 20, 2000
512
2c3758b Mid-sized documenation update
Philip Gwyn authored Dec 8, 2007
513 L<POE::Queue>, L<POE::Queue::Array>
296aa91 @rcaputo finally add Dieter Pearcey's stackable filters
authored Apr 8, 2001
514
2c3758b Mid-sized documenation update
Philip Gwyn authored Dec 8, 2007
515 L<POE::Resource>, L<POE::Resource::Aliases>, L<POE::Resource::Events>,
516 L<POE::Resource::Extrefs>, L<POE::Resource::FileHandles>,
e979f83 Fix invalid POD links
Larwan Berke authored May 28, 2010
517 L<POE::Resource::SIDs>, L<POE::Resource::Sessions>, L<POE::Resource::Signals>
f77c574 @rcaputo revised documentation
authored Dec 20, 2000
518
793304b @rcaputo Revise documentation in a major way.
authored Aug 18, 2007
519 =head2 Helpers
520
2c3758b Mid-sized documenation update
Philip Gwyn authored Dec 8, 2007
521 L<POE::Pipe>, L<POE::Pipe::OneWay>, L<POE::Pipe::TwoWay>
793304b @rcaputo Revise documentation in a major way.
authored Aug 18, 2007
522
eb6532b @rcaputo Rely on POE::Test::Loops 1.021, which should be everywhere by now.
authored Jul 27, 2009
523 =head2 Home Page
0d6f19d @rcaputo Revised all the manpages. Split the manpages into separate PODs, and
authored Jun 15, 1999
524
eb6532b @rcaputo Rely on POE::Test::Loops 1.021, which should be everywhere by now.
authored Jul 27, 2009
525 http://poe.perl.org/
792d01e @rcaputo Documentation tweaks. Bump the version up to 0.31 for release.
authored Apr 18, 2005
526
eb6532b @rcaputo Rely on POE::Test::Loops 1.021, which should be everywhere by now.
authored Jul 27, 2009
527 =head2 Bug Tracker
641566b @rcaputo I accidentally rewrote the documentation for this module.
authored Jan 20, 2004
528
6276d91 @rcaputo Documented the bug tracker, repository, and other resource URLs.
authored Jul 27, 2009
529 https://rt.cpan.org/Dist/Display.html?Status=Active&Queue=POE
530
eb6532b @rcaputo Rely on POE::Test::Loops 1.021, which should be everywhere by now.
authored Jul 27, 2009
531 =head2 Repository
6276d91 @rcaputo Documented the bug tracker, repository, and other resource URLs.
authored Jul 27, 2009
532
533 https://poe.svn.sourceforge.net/svnroot/poe/trunk/poe
534
eb6532b @rcaputo Rely on POE::Test::Loops 1.021, which should be everywhere by now.
authored Jul 27, 2009
535 =head2 Other Resources
6276d91 @rcaputo Documented the bug tracker, repository, and other resource URLs.
authored Jul 27, 2009
536
537 http://search.cpan.org/dist/POE/
ad0d40f @rcaputo 0.08_05
authored Jan 5, 2000
538
d8788af @rcaputo Big documentation rewrite
authored May 22, 2000
539 =head1 AUTHORS & COPYRIGHT
0d6f19d @rcaputo Revised all the manpages. Split the manpages into separate PODs, and
authored Jun 15, 1999
540
793304b @rcaputo Revise documentation in a major way.
authored Aug 18, 2007
541 POE is the combined effort of quite a lot of people. This is an
542 incomplete list of some early contributors. A more complete list can
543 be found in POE's change log.
d8788af @rcaputo Big documentation rewrite
authored May 22, 2000
544
545 =over 2
546
726aee4 @rcaputo credit more people
authored Nov 24, 2001
547 =item Ann Barcomb
d8788af @rcaputo Big documentation rewrite
authored May 22, 2000
548
726aee4 @rcaputo credit more people
authored Nov 24, 2001
549 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 Jan 4, 2002
550 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 May 30, 2002
551 support in POE::Component::Server::TCP. Her ideas also inspired
552 Client::TCP component, introduced in version 0.1702.
d8788af @rcaputo Big documentation rewrite
authored May 22, 2000
553
f77c574 @rcaputo revised documentation
authored Dec 20, 2000
554 =item Artur Bergman
d8788af @rcaputo Big documentation rewrite
authored May 22, 2000
555
641566b @rcaputo I accidentally rewrote the documentation for this module.
authored Jan 20, 2004
556 Artur Bergman is <sky@cpan.org>. He contributed many hours' work into
557 POE and quite a lot of ideas. Years later, I decide he's right and
558 actually implement them.
0d6f19d @rcaputo Revised all the manpages. Split the manpages into separate PODs, and
authored Jun 15, 1999
559
f77c574 @rcaputo revised documentation
authored Dec 20, 2000
560 Artur is the author of Filter::HTTPD and Filter::Reference, as well as
641566b @rcaputo I accidentally rewrote the documentation for this module.
authored Jan 20, 2004
561 bits and pieces throughout POE. His feedback, testing, design and
562 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 Jun 15, 1999
563
641566b @rcaputo I accidentally rewrote the documentation for this module.
authored Jan 20, 2004
564 Artur is investing his time heavily into perl 5's iThreads and PONIE
565 at the moment. This project has far-reaching implications for POE's
566 future.
726aee4 @rcaputo credit more people
authored Nov 24, 2001
567
568 =item Jos Boumans
569
7183ab8 @rcaputo Fix Jos Boumans' credit.
authored May 26, 2008
570 Jos Boumans is <kane@cpan.org>, aka C<kane>. Jos is a major driving
571 force behind the POE::Simple movement and has helped inspire the
572 POE::Components for TCP clients and servers.
726aee4 @rcaputo credit more people
authored Nov 24, 2001
573
574 =item Matt Cashner
575
957c350 update my email address
Matt Cashner authored Apr 17, 2004
576 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 Jan 20, 2004
577 core developers. He's spearheaded the movement to simplify POE for
578 new users, flattening the learning curve and making the system more
579 accessible to everyone. He uses the system in mission critical
580 applications, folding feedback and features back into the distribution
581 for everyone's enjoyment.
726aee4 @rcaputo credit more people
authored Nov 24, 2001
582
583 =item Andrew Chen
584
626fc71 @rcaputo Bump the version number and halfheartedly revise the man page. The
authored Jan 4, 2002
585 Andrew Chen is <achen-poe@micropixel.com>. Andrew is the resident
586 POE/Windows guru. He contributes much needed testing for Solaris on
587 the SPARC and Windows on various Intel platforms.
726aee4 @rcaputo credit more people
authored Nov 24, 2001
588
f77c574 @rcaputo revised documentation
authored Dec 20, 2000
589 =item Douglas Couch
0d6f19d @rcaputo Revised all the manpages. Split the manpages into separate PODs, and
authored Jun 15, 1999
590
641566b @rcaputo I accidentally rewrote the documentation for this module.
authored Jan 20, 2004
591 Douglas Couch is <dscouch@purdue.edu>. Douglas helped port and
592 maintain POE for Windows early on.
0d6f19d @rcaputo Revised all the manpages. Split the manpages into separate PODs, and
authored Jun 15, 1999
593
726aee4 @rcaputo credit more people
authored Nov 24, 2001
594 =item Jeffrey Goff
595
596 Jeffrey Goff is <jgoff@blackboard.com>. Jeffrey is the author of
597 several POE modules, including a tokenizing filter and a component for
598 managing user information, PoCo::UserBase. He's also co-author of "A
599 Beginner's Introduction to POE" at www.perl.com.
600
f77c574 @rcaputo revised documentation
authored Dec 20, 2000
601 =item Philip Gwyn
d8788af @rcaputo Big documentation rewrite
authored May 22, 2000
602
f77c574 @rcaputo revised documentation
authored Dec 20, 2000
603 Philip Gwyn is <gwynp@artware.qc.ca>. He extended the Wheels I/O
604 abstraction to support hot-swappable filters, and he eventually
626fc71 @rcaputo Bump the version number and halfheartedly revise the man page. The
authored Jan 4, 2002
605 convinced Rocco that unique session and kernel IDs were a good thing.
d8788af @rcaputo Big documentation rewrite
authored May 22, 2000
606
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the …
Philip Gwyn authored Dec 8, 2007
607 Philip also enhanced L<POE::Filter::Reference|POE::Filter::Reference> to
608 support different serialization methods. He has also improved POE's quality
609 by finding and fixing several bugs. He provided POE a much needed code
610 review around version 0.06.
d8788af @rcaputo Big documentation rewrite
authored May 22, 2000
611
95b93a6 Add more to what I've done.
Philip Gwyn authored Jan 21, 2010
612 Lately, Philip tracked down the race condition in signal handling and
613 fixed it with the signal pipe.
614
726aee4 @rcaputo credit more people
authored Nov 24, 2001
615 =item Arnar M. Hrafnkelsson
616
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the …
Philip Gwyn authored Dec 8, 2007
617 Arnar is <addi@umich.edu>. Addi tested POE and L<POE::Component::IRC|POE::Component::IRC> on
2c3758b Mid-sized documenation update
Philip Gwyn authored Dec 8, 2007
618 Windows, finding bugs and testing fixes. He appears throughout the Changes
619 file. He has also written "cpoe", which is a POE-like library for C.
726aee4 @rcaputo credit more people
authored Nov 24, 2001
620
f77c574 @rcaputo revised documentation
authored Dec 20, 2000
621 =item Dave Paris
d8788af @rcaputo Big documentation rewrite
authored May 22, 2000
622
f77c574 @rcaputo revised documentation
authored Dec 20, 2000
623 Dave Paris is <dparis@w3works.com>. Dave tested and benchmarked POE
624 around version 0.05, discovering some subtle (and not so subtle)
625 timing problems. The pre-forking server sample was his idea.
641566b @rcaputo I accidentally rewrote the documentation for this module.
authored Jan 20, 2004
626 Versions 0.06 and later scaled to higher loads because of his work.
627 He has contributed a lot of testing and feedback, much of which is
628 tagged in the Changes file as a-mused. The man is scarily good at
629 testing and troubleshooting.
761b0d6 @rcaputo speed up kernel; fix bad filehandle in test 4
authored Dec 3, 2000
630
f77c574 @rcaputo revised documentation
authored Dec 20, 2000
631 =item Dieter Pearcey
0d6f19d @rcaputo Revised all the manpages. Split the manpages into separate PODs, and
authored Jun 15, 1999
632
2c3758b Mid-sized documenation update
Philip Gwyn authored Dec 8, 2007
633 Dieter Pearcey is <dieter@bullfrog.perlhacker.org>. He goes by several
634 Japanese nicknames. Dieter's current area of expertise is in Wheels and
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the …
Philip Gwyn authored Dec 8, 2007
635 Filters. He greatly improved L<POE::Wheel::FollowTail|POE::Wheel::FollowTail>, and his Filter
2c3758b Mid-sized documenation update
Philip Gwyn authored Dec 8, 2007
636 contributions include the basic Block filter, as well as Stackable,
637 RecordBlock, Grep and Map.
c575666 @rcaputo added Filter::Block and Dieter's FollowTail patches; finishing touche…
authored Jun 17, 2000
638
f77c574 @rcaputo revised documentation
authored Dec 20, 2000
639 =item Robert Seifer
0d6f19d @rcaputo Revised all the manpages. Split the manpages into separate PODs, and
authored Jun 15, 1999
640
d8788af @rcaputo Big documentation rewrite
authored May 22, 2000
641 Robert Seifer is <e-mail unknown>. He rotates IRC nicknames
642 regularly.
0d6f19d @rcaputo Revised all the manpages. Split the manpages into separate PODs, and
authored Jun 15, 1999
643
d8788af @rcaputo Big documentation rewrite
authored May 22, 2000
644 Robert contributed entirely too much time, both his own and his
645 computers, towards the detection and eradication of a memory
646 corruption bug that POE tickled in earlier Perl versions. In the end,
647 his work produced a simple compile-time hack that worked around a
648 problem relating to anonymous subs, scope and @{} processing.
0d6f19d @rcaputo Revised all the manpages. Split the manpages into separate PODs, and
authored Jun 15, 1999
649
da6a2f2 @rcaputo Matt Sergeant contributed POE::Kernel::Poll, an event loop substrate
authored May 30, 2002
650 =item Matt Sergeant
651
e979f83 Fix invalid POD links
Larwan Berke authored May 28, 2010
652 Matt contributed C<POE::Kernel::Poll>, a more efficient way to watch
f06f820 @rcaputo Mike Castle found references to the old POE::Loop::Poll in the
authored Dec 18, 2004
653 multiple files than select(). It's since been moved to
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the …
Philip Gwyn authored Dec 8, 2007
654 L<POE::Loop::IO_Poll|POE::Loop::IO_Poll>.
da6a2f2 @rcaputo Matt Sergeant contributed POE::Kernel::Poll, an event loop substrate
authored May 30, 2002
655
726aee4 @rcaputo credit more people
authored Nov 24, 2001
656 =item Richard Soderberg
657
658 Richard Soderberg is <poe@crystalflame.net>, aka C<coral>. Richard is
659 a collaborator on several side projects involving POE. His work
660 provides valuable testing and feedback from a user's point of view.
661
f77c574 @rcaputo revised documentation
authored Dec 20, 2000
662 =item Dennis Taylor
197063a @rcaputo gutted and rewrote Filter::Line's innards for extra options
authored Jul 27, 2000
663
664 Dennis Taylor is <dennis@funkplanet.com>. Dennis has been testing,
665 debugging and patching bits here and there, such as Filter::Line which
666 he improved by leaps in 0.1102. He's also the author of
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the …
Philip Gwyn authored Dec 8, 2007
667 L<POE::Component::IRC|POE::Component::IRC>, the widely popular POE-based successor to his
668 wildly popular L<Net::IRC|Net::IRC> library.
197063a @rcaputo gutted and rewrote Filter::Line's innards for extra options
authored Jul 27, 2000
669
80972fc @xantus add blurb about myself to the contributers list
xantus authored Aug 20, 2007
670 =item David Davis
671
672 David Davis, aka Xantus is <xantus@cpan.org>. David contributed patches
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the …
Philip Gwyn authored Dec 8, 2007
673 to the HTTPD filter, and added CALLER_STATE to L<POE::Session|POE::Session>. He is the
80972fc @xantus add blurb about myself to the contributers list
xantus authored Aug 20, 2007
674 author of L<Sprocket>, a networking framework built on POE.
675
f77c574 @rcaputo revised documentation
authored Dec 20, 2000
676 =item Others?
0d6f19d @rcaputo Revised all the manpages. Split the manpages into separate PODs, and
authored Jun 15, 1999
677
793304b @rcaputo Revise documentation in a major way.
authored Aug 18, 2007
678 Please contact the author if you've been forgotten and would like to
679 be included here.
0d6f19d @rcaputo Revised all the manpages. Split the manpages into separate PODs, and
authored Jun 15, 1999
680
8f0c235 @rcaputo Move the POE.pm use lines to POE::Kernel. Mark that contributors need…
authored Aug 19, 2007
681 TODO - This section has fallen into disrepair. A POE historian needs
682 to cull the CHANGES for the names of major contributors.
683
0d6f19d @rcaputo Revised all the manpages. Split the manpages into separate PODs, and
authored Jun 15, 1999
684 =back
685
686 =head2 Author
687
d8788af @rcaputo Big documentation rewrite
authored May 22, 2000
688 =over 2
0d6f19d @rcaputo Revised all the manpages. Split the manpages into separate PODs, and
authored Jun 15, 1999
689
f77c574 @rcaputo revised documentation
authored Dec 20, 2000
690 =item Rocco Caputo
0d6f19d @rcaputo Revised all the manpages. Split the manpages into separate PODs, and
authored Jun 15, 1999
691
793304b @rcaputo Revise documentation in a major way.
authored Aug 18, 2007
692 Rocco Caputo is <rcaputo@cpan.org>. POE is his brainchild. He wishes
693 to thank you for your interest, and he has more thanks than he can
694 count for all the people who have contributed. POE would not be
695 nearly as cool without you.
0d6f19d @rcaputo Revised all the manpages. Split the manpages into separate PODs, and
authored Jun 15, 1999
696
6276d91 @rcaputo Documented the bug tracker, repository, and other resource URLs.
authored Jul 27, 2009
697 Except where otherwise noted, POE is Copyright 1998-2009 Rocco Caputo.
0d6f19d @rcaputo Revised all the manpages. Split the manpages into separate PODs, and
authored Jun 15, 1999
698 All rights reserved. POE is free software; you may redistribute it
699 and/or modify it under the same terms as Perl itself.
700
d8788af @rcaputo Big documentation rewrite
authored May 22, 2000
701 =back
702
703 Thank you for reading!
704
0d6f19d @rcaputo Revised all the manpages. Split the manpages into separate PODs, and
authored Jun 15, 1999
705 =cut
82929ed @rcaputo Mark files that need to be redocumented.
authored Aug 19, 2007
706
707 # rocco // vim: ts=2 sw=2 expandtab
66cbf3b @rcaputo Everything needs an edit pass. Add TODOs to every module.
authored Feb 17, 2009
708 # TODO - Edit.
Something went wrong with that request. Please try again.