Subject: | clone() methods for filters (undo Server::TCP inconsistency) |
Someone on IRC was having no end of trouble with
POE::Component::Server::TCP. Unlike nearly everything in POE, its
filter parameters DON'T take filter instances. Rather, they take class
names and the parameters to instantiate them.
This design came about after we realized that every client connection
needed a separate filter instance. We couldn't very well share one
filter among them all otherwise buffered data would bleed between sessions.
However, the inconsistent behavior is a serious impediment to global
understanding of all that is POE.
One possible solution is to implement clone() methods for Filter
classes. This would create a new filter that's configured identically
to the existing one.
The Client and Server components could then accept filter instances.
They would just clone that filter for each new connection.
--
Rocco Caputo - rcaputo@pobox.com - http://poe.perl.org/