Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Newer
Older
100644 716 lines (512 sloc) 26.207 kb
0d6f19d Rocco Caputo Revised all the manpages. Split the manpages into separate PODs, and
authored
1 # Copyrights and documentation are after __END__.
96ceb8b Rocco Caputo Initial revision
authored
2
3 package POE;
4
5 use strict;
ea6d5ca This patch is the beginning of RT#1692, hopefully I got them all, help m...
Larwan Berke authored
6 use Carp qw( croak );
372c3a1 Rocco Caputo Tweaking to get Makefile.PL working correctly.
authored
7
5959004 Rocco Caputo Remove $Id$ and $Revision$ tags. No significant code changed despite
authored
8 use vars qw($VERSION);
d84a710 Rocco Caputo Bump version & dependency for release.
authored
9 $VERSION = '1.310'; # NOTE - Should be #.### (three decimal places)
4cdc9c6 Rocco Caputo macros, optimizations, comments. a lot of changes.
authored
10
372c3a1 Rocco Caputo Tweaking to get Makefile.PL working correctly.
authored
11 sub import {
12 my $self = shift;
6f253c6 Rocco Caputo Optimized POE::Preprocessor a bit, and added POE::NFA
authored
13
3c01254 Tweak the @modules logic, thanks to TonyC ( it might not be perfect but ...
Larwan Berke authored
14 my @loops = grep(/^(?:XS::)?Loop::/, @_);
6f253c6 Rocco Caputo Optimized POE::Preprocessor a bit, and added POE::NFA
authored
15 my @sessions = grep(/^(Session|NFA)$/, @_);
3c01254 Tweak the @modules logic, thanks to TonyC ( it might not be perfect but ...
Larwan Berke authored
16 my @modules = grep(!/^(Kernel|Session|NFA|(?:XS::)?Loop::[\w:]+)$/, @_);
6f253c6 Rocco Caputo Optimized POE::Preprocessor a bit, and added POE::NFA
authored
17
5d1b97a Remove the POE::Loop modules from the modules that need to be loaded
Martijn van Beers authored
18 croak "can't use multiple event loops at once"
19 if (@loops > 1);
500fb10 Rocco Caputo add new tescase for POE::NFA
authored
20 croak "POE::Session and POE::NFA export conflicting constants"
3c01254 Tweak the @modules logic, thanks to TonyC ( it might not be perfect but ...
Larwan Berke authored
21 if scalar @sessions > 1;
6f253c6 Rocco Caputo Optimized POE::Preprocessor a bit, and added POE::NFA
authored
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 Rocco Caputo Tweaking to get Makefile.PL working correctly.
authored
30
cb72f14 Rocco Caputo Applying a patch by Martijn van Beers. This change adds syntax for
authored
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
41 $loop = "{ loop => '" . shift (@loops) . "' }";
cb72f14 Rocco Caputo Applying a patch by Martijn van Beers. This change adds syntax for
authored
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 Rocco Caputo Instrument some code in POE's import, especially the code for explicit
authored
49 }
cb72f14 Rocco Caputo Applying a patch by Martijn van Beers. This change adds syntax for
authored
50 }
8ae8b71 Rocco Caputo Propagate the POE::Kernel TRACE and ASSERT constants into any other
authored
51
cb72f14 Rocco Caputo Applying a patch by Martijn van Beers. This change adds syntax for
authored
52 # Load all the others.
8429c0a Rocco Caputo forward module exports to the package using POE directly
authored
53
372c3a1 Rocco Caputo Tweaking to get Makefile.PL working correctly.
authored
54 foreach my $module (@modules) {
8429c0a Rocco Caputo forward module exports to the package using POE directly
authored
55 my $code = "package $package; use POE::$module;";
cb72f14 Rocco Caputo Applying a patch by Martijn van Beers. This change adds syntax for
authored
56 # warn $code;
8429c0a Rocco Caputo forward module exports to the package using POE directly
authored
57 eval($code);
58 if ($@) {
babfbeb Rocco Caputo propagate error messages from modules to user
authored
59 warn $@;
60 push(@failed, $module);
61 }
372c3a1 Rocco Caputo Tweaking to get Makefile.PL working correctly.
authored
62 }
63
64 @failed and croak "could not import qw(" . join(' ', @failed) . ")";
65 }
96ceb8b Rocco Caputo Initial revision
authored
66
67 1;
4cdc9c6 Rocco Caputo macros, optimizations, comments. a lot of changes.
authored
68
0d6f19d Rocco Caputo Revised all the manpages. Split the manpages into separate PODs, and
authored
69 __END__
70
71 =head1 NAME
72
eb6532b Rocco Caputo Rely on POE::Test::Loops 1.021, which should be everywhere by now.
authored
73 POE - portable multitasking and networking framework for any event loop
0d6f19d Rocco Caputo Revised all the manpages. Split the manpages into separate PODs, and
authored
74
75 =head1 SYNOPSIS
76
d8788af Rocco Caputo Big documentation rewrite
authored
77 #!/usr/bin/perl -w
78 use strict;
0d6f19d Rocco Caputo Revised all the manpages. Split the manpages into separate PODs, and
authored
79
a57acda Rocco Caputo Document "use POE" magic.
authored
80 use POE; # Auto-includes POE::Kernel and POE::Session.
6f47304 Rocco Caputo clean up POD and whitespace
authored
81
f77c574 Rocco Caputo revised documentation
authored
82 sub handler_start {
d8788af Rocco Caputo Big documentation rewrite
authored
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 Rocco Caputo revised documentation
authored
89 sub handler_increment {
d8788af Rocco Caputo Big documentation rewrite
authored
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 Rocco Caputo revised documentation
authored
95 sub handler_stop {
d8788af Rocco Caputo Big documentation rewrite
authored
96 print "Session ", $_[SESSION]->ID, " has stopped.\n";
97 }
98
641566b Rocco Caputo I accidentally rewrote the documentation for this module.
authored
99 for (1..10) {
d8788af Rocco Caputo Big documentation rewrite
authored
100 POE::Session->create(
641566b Rocco Caputo I accidentally rewrote the documentation for this module.
authored
101 inline_states => {
102 _start => \&handler_start,
103 increment => \&handler_increment,
104 _stop => \&handler_stop,
105 }
d8788af Rocco Caputo Big documentation rewrite
authored
106 );
107 }
108
641566b Rocco Caputo I accidentally rewrote the documentation for this module.
authored
109 POE::Kernel->run();
0d6f19d Rocco Caputo Revised all the manpages. Split the manpages into separate PODs, and
authored
110 exit;
111
333ddb3 Rocco Caputo document other resources early, so people can find them sooner
authored
112 =head1 DESCRIPTION
113
793304b Rocco Caputo Revise documentation in a major way.
authored
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 Rocco Caputo I accidentally rewrote the documentation for this module.
authored
117
793304b Rocco Caputo Revise documentation in a major way.
authored
118 POE provides a unified interface for several other event loops,
eb6532b Rocco Caputo Rely on POE::Test::Loops 1.021, which should be everywhere by now.
authored
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 Rocco Caputo Revise documentation in a major way.
authored
131 different levels can be mixed and matched seamlessly within a single
eb6532b Rocco Caputo Rely on POE::Test::Loops 1.021, which should be everywhere by now.
authored
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 Rocco Caputo I accidentally rewrote the documentation for this module.
authored
135
793304b Rocco Caputo Revise documentation in a major way.
authored
136 POE's bundled abstraction layers are the tip of a growing iceberg.
eb6532b Rocco Caputo Rely on POE::Test::Loops 1.021, which should be everywhere by now.
authored
137 L<Sprocket>, L<POE::Stage|POE::Stage>, and other CPAN distributions
138 build upon this work. You're encouraged to look around.
4108539 Rocco Caputo Clean up the overview of Filter::Reference after someone (I forget!
authored
139
793304b Rocco Caputo Revise documentation in a major way.
authored
140 No matter how high you go, though, it all boils down to calls to
eb6532b Rocco Caputo Rely on POE::Test::Loops 1.021, which should be everywhere by now.
authored
141 L<POE::Kernel|POE::Kernel>. So your down-to-earth code can easily
142 cooperate with stratospheric systems.
d8788af Rocco Caputo Big documentation rewrite
authored
143
793304b Rocco Caputo Revise documentation in a major way.
authored
144 =head2 Layer 1: Kernel and Sessions
dddc865 Rocco Caputo I discovered the podchecker utility, and ran it on POE's
authored
145
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the mod...
Philip Gwyn authored
146 The lowest public layer is comprised of L<POE::Kernel|POE::Kernel>,
147 L<POE::Session|POE::Session>, and other session types.
d8788af Rocco Caputo Big documentation rewrite
authored
148
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the mod...
Philip Gwyn authored
149 L<POE::Kernel|POE::Kernel> does most of the heavy lifting. It provides a portable
793304b Rocco Caputo Revise documentation in a major way.
authored
150 interface for filehandle activity detection, multiple alarms and other
151 timers, signal handling, and other less-common features.
d8788af Rocco Caputo Big documentation rewrite
authored
152
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the mod...
Philip Gwyn authored
153 L<POE::Session|POE::Session> and derived classes encapsulate the notion of an event
793304b Rocco Caputo Revise documentation in a major way.
authored
154 driven task. They also customize event dispatch to a particular
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the mod...
Philip Gwyn authored
155 calling convention. L<POE::NFA|POE::NFA>, for example, is more of a proper state
2c3758b Mid-sized documenation update
Philip Gwyn authored
156 machine. The CPAN has several other kinds of sessions.
0d6f19d Rocco Caputo Revised all the manpages. Split the manpages into separate PODs, and
authored
157
19bfcd5 Rocco Caputo Minor edits to POE and POE::Kernel. Major revisions to POE::Session.
authored
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 mod...
Philip Gwyn authored
160 are L<POE::Kernel|POE::Kernel> and L<POE::Session|POE::Session>.
19bfcd5 Rocco Caputo Minor edits to POE and POE::Kernel. Major revisions to POE::Session.
authored
161
793304b Rocco Caputo Revise documentation in a major way.
authored
162 =head2 Layer 2: Wheels, Filters, and Drivers
0d6f19d Rocco Caputo Revised all the manpages. Split the manpages into separate PODs, and
authored
163
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the mod...
Philip Gwyn authored
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 Rocco Caputo Revised all the manpages. Split the manpages into separate PODs, and
authored
169
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the mod...
Philip Gwyn authored
170 L<POE::Filter|POE::Filter> objects customize wheels in a modular way. Filters act as
793304b Rocco Caputo Revise documentation in a major way.
authored
171 I/O layers, turning raw streams into structured data, and serializing
2c3758b Mid-sized documenation update
Philip Gwyn authored
172 structures into something suitable for streams. The CPAN also has several
793304b Rocco Caputo Revise documentation in a major way.
authored
173 of these.
0d6f19d Rocco Caputo Revised all the manpages. Split the manpages into separate PODs, and
authored
174
2c3758b Mid-sized documenation update
Philip Gwyn authored
175 Drivers are where the wheels meet the road. In this case, the road is
793304b Rocco Caputo Revise documentation in a major way.
authored
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 Rocco Caputo Big documentation rewrite
authored
179
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the mod...
Philip Gwyn authored
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
182 also the default, so most people will never need to specify one.
183
793304b Rocco Caputo Revise documentation in a major way.
authored
184 =head2 Layer 3: Components
ad0d40f Rocco Caputo 0.08_05
authored
185
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the mod...
Philip Gwyn authored
186 L<POE::Component|POE::Component> classes are essentially Perl classes that use POE to
793304b Rocco Caputo Revise documentation in a major way.
authored
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 Rocco Caputo 0.08_05
authored
189
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the mod...
Philip Gwyn authored
190 Many components, such as L<POE::Component::Server::SMTP|POE::Component::Server::SMTP>, encapsulate the
793304b Rocco Caputo Revise documentation in a major way.
authored
191 generic details of an entire application. Others perform rather
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the mod...
Philip Gwyn authored
192 narrow tasks, such as L<POE::Component::DirWatch::Object|POE::Component::DirWatch::Object>.
0d6f19d Rocco Caputo Revised all the manpages. Split the manpages into separate PODs, and
authored
193
793304b Rocco Caputo Revise documentation in a major way.
authored
194 POE components are often just plain Perl objects. The previously
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the mod...
Philip Gwyn authored
195 mentioned L<POE::Component::DirWatch::Object|POE::Component::DirWatch::Object> uses L<Moose|Moose>. Other object
793304b Rocco Caputo Revise documentation in a major way.
authored
196 and meta-object frameworks are compatible.
626fc71 Rocco Caputo Bump the version number and halfheartedly revise the man page. The
authored
197
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the mod...
Philip Gwyn authored
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
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 Rocco Caputo I accidentally rewrote the documentation for this module.
authored
203
793304b Rocco Caputo Revise documentation in a major way.
authored
204 =head2 Layer 4 and Beyond: Frameworks and Object Metaphors
3ddd789 Rocco Caputo Updated Windows and MacOS support info. in POE's man page.
authored
205
793304b Rocco Caputo Revise documentation in a major way.
authored
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 Rocco Caputo Revised all the manpages. Split the manpages into separate PODs, and
authored
211
2c3758b Mid-sized documenation update
Philip Gwyn authored
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 mod...
Philip Gwyn authored
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
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 mod...
Philip Gwyn authored
219 L<POE::Component::IKC|POE::Component::IKC> and L<POE::TIKC|POE::TIKC>.
d8788af Rocco Caputo Big documentation rewrite
authored
220
793304b Rocco Caputo Revise documentation in a major way.
authored
221 =head2 Layer 0: POE's Internals
626fc71 Rocco Caputo Bump the version number and halfheartedly revise the man page. The
authored
222
cde579c Rocco Caputo Remove POE::Resource::Statistics. Move POE::Resource::FileHandles, POE:...
authored
223 POE's layered architecture continues below the surface. POE's guts
224 are broken into specific L<POE::Loop|POE::Loop> classes for each event
225 loop it supports. Internals are divided up by type, giving
226 L<POE::Resource|POE::Resource> classes for Aliases, Controls, Events,
227 Extrefs, FileHandles, SIDs, Sessions and Signals.
d8788af Rocco Caputo Big documentation rewrite
authored
228
793304b Rocco Caputo Revise documentation in a major way.
authored
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 mod...
Philip Gwyn authored
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 Rocco Caputo Revised all the manpages. Split the manpages into separate PODs, and
authored
233
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the mod...
Philip Gwyn authored
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
236 a new POE::API mix-in.
793304b Rocco Caputo Revise documentation in a major way.
authored
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 mod...
Philip Gwyn authored
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 Rocco Caputo Revise documentation in a major way.
authored
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 Rocco Caputo Move the POE.pm use lines to POE::Kernel. Mark that contributors need t...
authored
252 =head2 Basic Usage
253
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the mod...
Philip Gwyn authored
254 Basic usage, even for POE.pm, is documented in L<POE::Kernel|POE::Kernel>. That's
8f0c235 Rocco Caputo Move the POE.pm use lines to POE::Kernel. Mark that contributors need t...
authored
255 where most of POE's work is done, and POE.pm is little more than a
256 class loader.
257
793304b Rocco Caputo Revise documentation in a major way.
authored
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 mod...
Philip Gwyn authored
261 stuff, is documented in L<POE::Session|POE::Session>. That's because POE::Session
793304b Rocco Caputo Revise documentation in a major way.
authored
262 implements the calling convention, and other session types often do it
263 differently.
264
265 =head2 Base Classes Document Common Features
d8788af Rocco Caputo Big documentation rewrite
authored
266
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the mod...
Philip Gwyn authored
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
271 rehash the common things.
0d6f19d Rocco Caputo Revised all the manpages. Split the manpages into separate PODs, and
authored
272
e979f83 Fix invalid POD links
Larwan Berke authored
273 L<POE::Queue|POE::Queue>, L<POE::Resource|POE::Resource>, and L<POE::Loop|POE::Loop> document the
793304b Rocco Caputo Revise documentation in a major way.
authored
274 concepts and sometimes the standard interfaces behind multiple
37d4499 Rocco Caputo Apply Chris Fedde's massive doc patch, resolving rt.cpan.org ticket
authored
275 subclasses. You're encouraged to have a look.
3ddd789 Rocco Caputo Updated Windows and MacOS support info. in POE's man page.
authored
276
793304b Rocco Caputo Revise documentation in a major way.
authored
277 =head2 Helper Classes
278
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the mod...
Philip Gwyn authored
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 Rocco Caputo Revise documentation in a major way.
authored
281
282 =head2 Event Loop Bridges
283
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the mod...
Philip Gwyn authored
284 L<POE::Loop|POE::Loop> documents and specifies the interface for all of POE's event
793304b Rocco Caputo Revise documentation in a major way.
authored
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 mod...
Philip Gwyn authored
289 Many of the existing L<POE::Loop|POE::Loop> bridges provided in POE's base
793304b Rocco Caputo Revise documentation in a major way.
authored
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 mod...
Philip Gwyn authored
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 Rocco Caputo Revise documentation in a major way.
authored
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 mod...
Philip Gwyn authored
328 L<Time::HiRes|Time::HiRes> is highly recommended, even for older Perls that don't
2c3758b Mid-sized documenation update
Philip Gwyn authored
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 mod...
Philip Gwyn authored
330 much more accurate if it's included. L<POE::Kernel|POE::Kernel> will use Time::HiRes
793304b Rocco Caputo Revise documentation in a major way.
authored
331 automatically if it's available.
d8788af Rocco Caputo Big documentation rewrite
authored
332
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the mod...
Philip Gwyn authored
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
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 mod...
Philip Gwyn authored
336 L<Compress::Zlib|Compress::Zlib> to conserve bandwidth and reduce latency over slow links, but
2c3758b Mid-sized documenation update
Philip Gwyn authored
337 it's not required.
d8788af Rocco Caputo Big documentation rewrite
authored
338
2c3758b Mid-sized documenation update
Philip Gwyn authored
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 mod...
Philip Gwyn authored
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 Rocco Caputo Big documentation rewrite
authored
344
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the mod...
Philip Gwyn authored
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 Rocco Caputo update Windows support docs, and a few other bits
authored
348
2c3758b Mid-sized documenation update
Philip Gwyn authored
349 If you're using POE with Tk, you'll need L<Tk> installed.
d8788af Rocco Caputo Big documentation rewrite
authored
350
793304b Rocco Caputo Revise documentation in a major way.
authored
351 And other obvious things. Let us know if we've overlooked a
352 non-obvious detail.
d8788af Rocco Caputo Big documentation rewrite
authored
353
793304b Rocco Caputo Revise documentation in a major way.
authored
354 =head1 COMPATIBILITY ISSUES
f77c574 Rocco Caputo revised documentation
authored
355
793304b Rocco Caputo Revise documentation in a major way.
authored
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 Rocco Caputo Apply Chris Fedde's massive doc patch, resolving rt.cpan.org ticket
authored
358 available as third-party distributions. Parts of POE that require
793304b Rocco Caputo Revise documentation in a major way.
authored
359 nonstandard libraries are optional, and not having those libraries
360 should not prevent POE from installing.
641566b Rocco Caputo I accidentally rewrote the documentation for this module.
authored
361
793304b Rocco Caputo Revise documentation in a major way.
authored
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 Rocco Caputo Big documentation rewrite
authored
364
793304b Rocco Caputo Revise documentation in a major way.
authored
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 Rocco Caputo Big documentation rewrite
authored
367
9b1c689 Rocco Caputo Several doc changes to fix issues reported by garu in irc.perl.org
authored
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 Rocco Caputo Big documentation rewrite
authored
371
793304b Rocco Caputo Revise documentation in a major way.
authored
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 Rocco Caputo doc patch and 19_filterchange.t Storable tweak
authored
375
793304b Rocco Caputo Revise documentation in a major way.
authored
376 Past versions of POE have been tested with Perl versions as far back
1aae186 Apocalypse remove comments pertaining perl-5.004
apocalypse authored
377 as 5.6.2 and as recent as "blead", today's development build. We
793304b Rocco Caputo Revise documentation in a major way.
authored
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
1aae186 Apocalypse remove comments pertaining perl-5.004
apocalypse authored
380 system. You can always use older POE releases that works on your version,
381 please check L<BackPAN|http://backpan.perl.org/authors/id/R/RC/RCAPUTO/>.
d8788af Rocco Caputo Big documentation rewrite
authored
382
793304b Rocco Caputo Revise documentation in a major way.
authored
383 POE's quality is due in large part to the fine work of Chris Williams
384 and the other CPAN testers. They have dedicated resources towards
385 ensuring CPAN distributions pass their own tests, and we watch their
386 reports religiously. You can, too. The latest POE test reports can
168b592 Rocco Caputo Fix a cpantesters.org link that gcola reported as 404 in irc.perl.org #p...
authored
387 be found at L<http://cpantesters.org/distro/P/POE.html>.
d8788af Rocco Caputo Big documentation rewrite
authored
388
793304b Rocco Caputo Revise documentation in a major way.
authored
389 Thanks also go out to Benjamin Smith and the 2006 Google Summer of
390 Code. Ben was awarded a grant to improve POE's test suite, which he
391 did admirably.
392
393 =head2 Windows Issues
394
395 POE seems to work very nicely with Perl compiled for Cygwin. If you
396 must use ActiveState Perl, please use the absolute latest version.
397 ActiveState Perl's compatibility fluctuates from one build to another,
398 so we tend not to support older releases.
399
400 Windows and ActiveState Perl are considered an esoteric platform due
401 to the complex interactions between various versions. POE therefore
402 relies on user feedback and support here.
403
404 A number of people have helped bring POE's Windows support this far,
405 through contributions of time, patches, and other resources. Some of
406 them are: Sean Puckett, Douglas Couch, Andrew Chen, Uhlarik Ondoej,
407 Nick Williams, and Chris Williams (no relation).
408
e766708 Apocalypse Add doc blurb about pty issues on linux
apocalypse authored
409 =head2 Linux/Unix Issues
410
411 =head3 pty woes
412
413 Some distributions chose to not completely setup the pseudo-tty
414 support. This is needed for L<POE::Wheel::Run> to interact with the
415 subprocess. If you see something like this while running C<make test>
416 please look at your distribution's documentation on how to fix it. For
417 example, on Debian-based systems the solution was to execute
418 "sudo apt-get install udev".
419
420 t/30_loops/io_poll/wheel_run.t ..................... 1/99
421 pty_allocate(nonfatal): posix_openpt(): No such file or directory at /usr/local/lib/perl/5.10.0/IO/Pty.pm line 24.
422 ...
423 Cannot open a pty at /home/apoc/poe/blib/lib/POE/Wheel/Run.pm line 251
424 Compilation failed in require at t/30_loops/io_poll/wheel_run.t line 24.
425 # Looks like you planned 99 tests but ran 5.
426 # Looks like your test exited with 22 just after 5.
427 t/30_loops/io_poll/wheel_run.t ..................... Dubious, test returned 22 (wstat 5632, 0x1600)
428
793304b Rocco Caputo Revise documentation in a major way.
authored
429 =head2 Other Compatibility Issues
430
431 None currently known. See GETTING HELP below if you've run into
432 something.
433
434 =head1 GETTING HELP
435
436 POE's developers take pride in its quality. If you encounter a
437 problem, please let us know.
438
439 =head2 POE's Request Tracker
440
441 You're welcome to e-mail questions and bug reports to
442 <bug-POE@rt.cpan.org>. This is not a realtime support channel,
443 though. If you need a more immediate response, try one of the methods
444 below.
445
446 =head2 POE's Mailing List
447
448 POE has a dedicated mailing list where developers and users discuss
449 the software and its use. You're welcome to join us. Send an e-mail
450 to <poe-help@perl.org> for subscription instructions. The subject and
451 message body are ignored.
452
453 =head2 POE's Web Site
454
455 <http://poe.perl.org> contains recent information, tutorials, and
456 examples. It's also a wiki, so people are invited to share tips and
457 code snippets there as well.
458
23912e3 Rocco Caputo Add a reference to POE's subversion repository, per Zoffix's
authored
459 =head2 POE's Source Code
460
461 The following command will fetch the most current version of POE into
462 the "poe" subdirectory:
463
464 svn co https://poe.svn.sourceforge.net/svnroot/poe poe
465
793304b Rocco Caputo Revise documentation in a major way.
authored
466 =head2 SourceForge
467
468 http://sourceforge.net/projects/poe/ is POE's project page.
469
470 =head2 Internet Relay Chat (IRC)
471
472 irc.perl.org channel #poe is an informal place to waste some time and
473 maybe even discuss Perl and POE. Consider an SSH relay if your
474 workplace frowns on IRC. But only if they won't fire you if you're
475 caught.
476
477 =head2 Personal Support
478
479 Unfortunately we don't have resources to provide free one-on-one
480 personal support anymore. We'll do it for a fee, though. Send Rocco
481 an e-mail via his CPAN address.
d8788af Rocco Caputo Big documentation rewrite
authored
482
f77c574 Rocco Caputo revised documentation
authored
483 =head1 SEE ALSO
d8788af Rocco Caputo Big documentation rewrite
authored
484
793304b Rocco Caputo Revise documentation in a major way.
authored
485 Broken down by abstraction layer.
486
487 =head2 Layer 1
488
2c3758b Mid-sized documenation update
Philip Gwyn authored
489 L<POE::Kernel>, L<POE::Session>, L<POE::NFA>
f77c574 Rocco Caputo revised documentation
authored
490
793304b Rocco Caputo Revise documentation in a major way.
authored
491 =head2 Layer 2
492
2c3758b Mid-sized documenation update
Philip Gwyn authored
493 L<POE::Wheel>, L<POE::Wheel::Curses>, L<POE::Wheel::FollowTail>,
494 L<POE::Wheel::ListenAccept>, L<POE::Wheel::ReadLine>, L<POE::Wheel::ReadWrite>,
495 L<POE::Wheel::Run>, L<POE::Wheel::SocketFactory>
f77c574 Rocco Caputo revised documentation
authored
496
2c3758b Mid-sized documenation update
Philip Gwyn authored
497 L<POE::Driver>, L<POE::Driver::SysRW>
296aa91 Rocco Caputo finally add Dieter Pearcey's stackable filters
authored
498
2c3758b Mid-sized documenation update
Philip Gwyn authored
499 L<POE::Filter>, L<POE::Filter::Block>, L<POE::Filter::Grep>,
500 L<POE::Filter::HTTPD>, L<POE::Filter::Line>, L<POE::Filter::Map>,
501 L<POE::Filter::RecordBlock>, L<POE::Filter::Reference>,
502 L<POE::Filter::Stackable>, L<POE::Filter::Stream>
296aa91 Rocco Caputo finally add Dieter Pearcey's stackable filters
authored
503
793304b Rocco Caputo Revise documentation in a major way.
authored
504 =head2 Layer 3
505
2c3758b Mid-sized documenation update
Philip Gwyn authored
506 L<POE::Component>, L<POE::Component::Client::TCP>,
507 L<POE::Component::Server::TCP>
f77c574 Rocco Caputo revised documentation
authored
508
793304b Rocco Caputo Revise documentation in a major way.
authored
509 =head2 Layer 0
510
2c3758b Mid-sized documenation update
Philip Gwyn authored
511 L<POE::Loop>, L<POE::Loop::Event>, L<POE::Loop::Gtk>, L<POE::Loop::IO_Poll>,
512 L<POE::Loop::Select>, L<POE::Loop::Tk>
f77c574 Rocco Caputo revised documentation
authored
513
2c3758b Mid-sized documenation update
Philip Gwyn authored
514 L<POE::Queue>, L<POE::Queue::Array>
296aa91 Rocco Caputo finally add Dieter Pearcey's stackable filters
authored
515
2c3758b Mid-sized documenation update
Philip Gwyn authored
516 L<POE::Resource>, L<POE::Resource::Aliases>, L<POE::Resource::Events>,
517 L<POE::Resource::Extrefs>, L<POE::Resource::FileHandles>,
e979f83 Fix invalid POD links
Larwan Berke authored
518 L<POE::Resource::SIDs>, L<POE::Resource::Sessions>, L<POE::Resource::Signals>
f77c574 Rocco Caputo revised documentation
authored
519
793304b Rocco Caputo Revise documentation in a major way.
authored
520 =head2 Helpers
521
2c3758b Mid-sized documenation update
Philip Gwyn authored
522 L<POE::Pipe>, L<POE::Pipe::OneWay>, L<POE::Pipe::TwoWay>
793304b Rocco Caputo Revise documentation in a major way.
authored
523
eb6532b Rocco Caputo Rely on POE::Test::Loops 1.021, which should be everywhere by now.
authored
524 =head2 Home Page
0d6f19d Rocco Caputo Revised all the manpages. Split the manpages into separate PODs, and
authored
525
eb6532b Rocco Caputo Rely on POE::Test::Loops 1.021, which should be everywhere by now.
authored
526 http://poe.perl.org/
792d01e Rocco Caputo Documentation tweaks. Bump the version up to 0.31 for release.
authored
527
eb6532b Rocco Caputo Rely on POE::Test::Loops 1.021, which should be everywhere by now.
authored
528 =head2 Bug Tracker
641566b Rocco Caputo I accidentally rewrote the documentation for this module.
authored
529
6276d91 Rocco Caputo Documented the bug tracker, repository, and other resource URLs.
authored
530 https://rt.cpan.org/Dist/Display.html?Status=Active&Queue=POE
531
eb6532b Rocco Caputo Rely on POE::Test::Loops 1.021, which should be everywhere by now.
authored
532 =head2 Repository
6276d91 Rocco Caputo Documented the bug tracker, repository, and other resource URLs.
authored
533
534 https://poe.svn.sourceforge.net/svnroot/poe/trunk/poe
535
eb6532b Rocco Caputo Rely on POE::Test::Loops 1.021, which should be everywhere by now.
authored
536 =head2 Other Resources
6276d91 Rocco Caputo Documented the bug tracker, repository, and other resource URLs.
authored
537
538 http://search.cpan.org/dist/POE/
ad0d40f Rocco Caputo 0.08_05
authored
539
d8788af Rocco Caputo Big documentation rewrite
authored
540 =head1 AUTHORS & COPYRIGHT
0d6f19d Rocco Caputo Revised all the manpages. Split the manpages into separate PODs, and
authored
541
793304b Rocco Caputo Revise documentation in a major way.
authored
542 POE is the combined effort of quite a lot of people. This is an
543 incomplete list of some early contributors. A more complete list can
544 be found in POE's change log.
d8788af Rocco Caputo Big documentation rewrite
authored
545
546 =over 2
547
726aee4 Rocco Caputo credit more people
authored
548 =item Ann Barcomb
d8788af Rocco Caputo Big documentation rewrite
authored
549
726aee4 Rocco Caputo credit more people
authored
550 Ann Barcomb is <kudra@domaintje.com>, aka C<kudra>. Ann contributed
626fc71 Rocco Caputo Bump the version number and halfheartedly revise the man page. The
authored
551 large portions of POE::Simple and the code that became the ReadWrite
da6a2f2 Rocco Caputo Matt Sergeant contributed POE::Kernel::Poll, an event loop substrate
authored
552 support in POE::Component::Server::TCP. Her ideas also inspired
553 Client::TCP component, introduced in version 0.1702.
d8788af Rocco Caputo Big documentation rewrite
authored
554
f77c574 Rocco Caputo revised documentation
authored
555 =item Artur Bergman
d8788af Rocco Caputo Big documentation rewrite
authored
556
641566b Rocco Caputo I accidentally rewrote the documentation for this module.
authored
557 Artur Bergman is <sky@cpan.org>. He contributed many hours' work into
558 POE and quite a lot of ideas. Years later, I decide he's right and
559 actually implement them.
0d6f19d Rocco Caputo Revised all the manpages. Split the manpages into separate PODs, and
authored
560
f77c574 Rocco Caputo revised documentation
authored
561 Artur is the author of Filter::HTTPD and Filter::Reference, as well as
641566b Rocco Caputo I accidentally rewrote the documentation for this module.
authored
562 bits and pieces throughout POE. His feedback, testing, design and
563 inspiration have been instrumental in making POE what it is today.
0d6f19d Rocco Caputo Revised all the manpages. Split the manpages into separate PODs, and
authored
564
641566b Rocco Caputo I accidentally rewrote the documentation for this module.
authored
565 Artur is investing his time heavily into perl 5's iThreads and PONIE
566 at the moment. This project has far-reaching implications for POE's
567 future.
726aee4 Rocco Caputo credit more people
authored
568
569 =item Jos Boumans
570
7183ab8 Rocco Caputo Fix Jos Boumans' credit.
authored
571 Jos Boumans is <kane@cpan.org>, aka C<kane>. Jos is a major driving
572 force behind the POE::Simple movement and has helped inspire the
573 POE::Components for TCP clients and servers.
726aee4 Rocco Caputo credit more people
authored
574
575 =item Matt Cashner
576
957c350 sungo update my email address
sungo authored
577 Matt Cashner is <sungo@pobox.com>, aka C<sungo>. Matt is one of POE's
641566b Rocco Caputo I accidentally rewrote the documentation for this module.
authored
578 core developers. He's spearheaded the movement to simplify POE for
579 new users, flattening the learning curve and making the system more
580 accessible to everyone. He uses the system in mission critical
581 applications, folding feedback and features back into the distribution
582 for everyone's enjoyment.
726aee4 Rocco Caputo credit more people
authored
583
584 =item Andrew Chen
585
626fc71 Rocco Caputo Bump the version number and halfheartedly revise the man page. The
authored
586 Andrew Chen is <achen-poe@micropixel.com>. Andrew is the resident
587 POE/Windows guru. He contributes much needed testing for Solaris on
588 the SPARC and Windows on various Intel platforms.
726aee4 Rocco Caputo credit more people
authored
589
f77c574 Rocco Caputo revised documentation
authored
590 =item Douglas Couch
0d6f19d Rocco Caputo Revised all the manpages. Split the manpages into separate PODs, and
authored
591
641566b Rocco Caputo I accidentally rewrote the documentation for this module.
authored
592 Douglas Couch is <dscouch@purdue.edu>. Douglas helped port and
593 maintain POE for Windows early on.
0d6f19d Rocco Caputo Revised all the manpages. Split the manpages into separate PODs, and
authored
594
726aee4 Rocco Caputo credit more people
authored
595 =item Jeffrey Goff
596
597 Jeffrey Goff is <jgoff@blackboard.com>. Jeffrey is the author of
598 several POE modules, including a tokenizing filter and a component for
599 managing user information, PoCo::UserBase. He's also co-author of "A
600 Beginner's Introduction to POE" at www.perl.com.
601
f77c574 Rocco Caputo revised documentation
authored
602 =item Philip Gwyn
d8788af Rocco Caputo Big documentation rewrite
authored
603
f77c574 Rocco Caputo revised documentation
authored
604 Philip Gwyn is <gwynp@artware.qc.ca>. He extended the Wheels I/O
605 abstraction to support hot-swappable filters, and he eventually
626fc71 Rocco Caputo Bump the version number and halfheartedly revise the man page. The
authored
606 convinced Rocco that unique session and kernel IDs were a good thing.
d8788af Rocco Caputo Big documentation rewrite
authored
607
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the mod...
Philip Gwyn authored
608 Philip also enhanced L<POE::Filter::Reference|POE::Filter::Reference> to
609 support different serialization methods. He has also improved POE's quality
610 by finding and fixing several bugs. He provided POE a much needed code
611 review around version 0.06.
d8788af Rocco Caputo Big documentation rewrite
authored
612
95b93a6 Add more to what I've done.
Philip Gwyn authored
613 Lately, Philip tracked down the race condition in signal handling and
614 fixed it with the signal pipe.
615
726aee4 Rocco Caputo credit more people
authored
616 =item Arnar M. Hrafnkelsson
617
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the mod...
Philip Gwyn authored
618 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
619 Windows, finding bugs and testing fixes. He appears throughout the Changes
620 file. He has also written "cpoe", which is a POE-like library for C.
726aee4 Rocco Caputo credit more people
authored
621
f77c574 Rocco Caputo revised documentation
authored
622 =item Dave Paris
d8788af Rocco Caputo Big documentation rewrite
authored
623
f77c574 Rocco Caputo revised documentation
authored
624 Dave Paris is <dparis@w3works.com>. Dave tested and benchmarked POE
625 around version 0.05, discovering some subtle (and not so subtle)
626 timing problems. The pre-forking server sample was his idea.
641566b Rocco Caputo I accidentally rewrote the documentation for this module.
authored
627 Versions 0.06 and later scaled to higher loads because of his work.
628 He has contributed a lot of testing and feedback, much of which is
629 tagged in the Changes file as a-mused. The man is scarily good at
630 testing and troubleshooting.
761b0d6 Rocco Caputo speed up kernel; fix bad filehandle in test 4
authored
631
f77c574 Rocco Caputo revised documentation
authored
632 =item Dieter Pearcey
0d6f19d Rocco Caputo Revised all the manpages. Split the manpages into separate PODs, and
authored
633
2c3758b Mid-sized documenation update
Philip Gwyn authored
634 Dieter Pearcey is <dieter@bullfrog.perlhacker.org>. He goes by several
635 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 mod...
Philip Gwyn authored
636 Filters. He greatly improved L<POE::Wheel::FollowTail|POE::Wheel::FollowTail>, and his Filter
2c3758b Mid-sized documenation update
Philip Gwyn authored
637 contributions include the basic Block filter, as well as Stackable,
638 RecordBlock, Grep and Map.
c575666 Rocco Caputo added Filter::Block and Dieter's FollowTail patches; finishing touches f...
authored
639
9654581 Rocco Caputo Clear out the event queue by session ID rather than reference.
authored
640 =item Plixer International
641
642 Plixer International is at L<http://plixer.com/>. Their sponsorship
643 has helped POE 1.300 and beyond be significantly more robust using
644 iThreads, especially when using fork() in Windows.
645
f77c574 Rocco Caputo revised documentation
authored
646 =item Robert Seifer
0d6f19d Rocco Caputo Revised all the manpages. Split the manpages into separate PODs, and
authored
647
d8788af Rocco Caputo Big documentation rewrite
authored
648 Robert Seifer is <e-mail unknown>. He rotates IRC nicknames
649 regularly.
0d6f19d Rocco Caputo Revised all the manpages. Split the manpages into separate PODs, and
authored
650
d8788af Rocco Caputo Big documentation rewrite
authored
651 Robert contributed entirely too much time, both his own and his
652 computers, towards the detection and eradication of a memory
653 corruption bug that POE tickled in earlier Perl versions. In the end,
654 his work produced a simple compile-time hack that worked around a
655 problem relating to anonymous subs, scope and @{} processing.
0d6f19d Rocco Caputo Revised all the manpages. Split the manpages into separate PODs, and
authored
656
da6a2f2 Rocco Caputo Matt Sergeant contributed POE::Kernel::Poll, an event loop substrate
authored
657 =item Matt Sergeant
658
e979f83 Fix invalid POD links
Larwan Berke authored
659 Matt contributed C<POE::Kernel::Poll>, a more efficient way to watch
f06f820 Rocco Caputo Mike Castle found references to the old POE::Loop::Poll in the
authored
660 multiple files than select(). It's since been moved to
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the mod...
Philip Gwyn authored
661 L<POE::Loop::IO_Poll|POE::Loop::IO_Poll>.
da6a2f2 Rocco Caputo Matt Sergeant contributed POE::Kernel::Poll, an event loop substrate
authored
662
726aee4 Rocco Caputo credit more people
authored
663 =item Richard Soderberg
664
665 Richard Soderberg is <poe@crystalflame.net>, aka C<coral>. Richard is
666 a collaborator on several side projects involving POE. His work
667 provides valuable testing and feedback from a user's point of view.
668
f77c574 Rocco Caputo revised documentation
authored
669 =item Dennis Taylor
197063a Rocco Caputo gutted and rewrote Filter::Line's innards for extra options
authored
670
671 Dennis Taylor is <dennis@funkplanet.com>. Dennis has been testing,
672 debugging and patching bits here and there, such as Filter::Line which
673 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 mod...
Philip Gwyn authored
674 L<POE::Component::IRC|POE::Component::IRC>, the widely popular POE-based successor to his
675 wildly popular L<Net::IRC|Net::IRC> library.
197063a Rocco Caputo gutted and rewrote Filter::Line's innards for extra options
authored
676
80972fc David Davis add blurb about myself to the contributers list
xantus authored
677 =item David Davis
678
679 David Davis, aka Xantus is <xantus@cpan.org>. David contributed patches
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the mod...
Philip Gwyn authored
680 to the HTTPD filter, and added CALLER_STATE to L<POE::Session|POE::Session>. He is the
80972fc David Davis add blurb about myself to the contributers list
xantus authored
681 author of L<Sprocket>, a networking framework built on POE.
682
f77c574 Rocco Caputo revised documentation
authored
683 =item Others?
0d6f19d Rocco Caputo Revised all the manpages. Split the manpages into separate PODs, and
authored
684
793304b Rocco Caputo Revise documentation in a major way.
authored
685 Please contact the author if you've been forgotten and would like to
686 be included here.
0d6f19d Rocco Caputo Revised all the manpages. Split the manpages into separate PODs, and
authored
687
5c2367d Hinrik Örn Sigurðsson Use Z<> to remove all TODOs from formatted Pod
hinrik authored
688 Z<TODO - This section has fallen into disrepair. A POE historian needs
689 to cull the CHANGES for the names of major contributors.>
8f0c235 Rocco Caputo Move the POE.pm use lines to POE::Kernel. Mark that contributors need t...
authored
690
0d6f19d Rocco Caputo Revised all the manpages. Split the manpages into separate PODs, and
authored
691 =back
692
693 =head2 Author
694
d8788af Rocco Caputo Big documentation rewrite
authored
695 =over 2
0d6f19d Rocco Caputo Revised all the manpages. Split the manpages into separate PODs, and
authored
696
f77c574 Rocco Caputo revised documentation
authored
697 =item Rocco Caputo
0d6f19d Rocco Caputo Revised all the manpages. Split the manpages into separate PODs, and
authored
698
793304b Rocco Caputo Revise documentation in a major way.
authored
699 Rocco Caputo is <rcaputo@cpan.org>. POE is his brainchild. He wishes
700 to thank you for your interest, and he has more thanks than he can
701 count for all the people who have contributed. POE would not be
702 nearly as cool without you.
0d6f19d Rocco Caputo Revised all the manpages. Split the manpages into separate PODs, and
authored
703
6276d91 Rocco Caputo Documented the bug tracker, repository, and other resource URLs.
authored
704 Except where otherwise noted, POE is Copyright 1998-2009 Rocco Caputo.
0d6f19d Rocco Caputo Revised all the manpages. Split the manpages into separate PODs, and
authored
705 All rights reserved. POE is free software; you may redistribute it
706 and/or modify it under the same terms as Perl itself.
707
d8788af Rocco Caputo Big documentation rewrite
authored
708 =back
709
710 Thank you for reading!
711
0d6f19d Rocco Caputo Revised all the manpages. Split the manpages into separate PODs, and
authored
712 =cut
82929ed Rocco Caputo Mark files that need to be redocumented.
authored
713
714 # rocco // vim: ts=2 sw=2 expandtab
66cbf3b Rocco Caputo Everything needs an edit pass. Add TODOs to every module.
authored
715 # TODO - Edit.
Something went wrong with that request. Please try again.