Skip Menu |

This queue is for tickets about the POE CPAN distribution.

Report information
The Basics
Id: 1666
Status: resolved
Priority: 0/
Queue: POE

People
Owner: SUNGO [...] cpan.org
Requestors: RCAPUTO [...] cpan.org
Cc:
AdminCc:

Bug Information
Severity: Important
Broken in: (no value)
Fixed in: (no value)



Subject: build a plugin framework for POE::Kernel APIs
All the back-end subsystems for POE::Kernel are now modular, although they are not in separate modules. Build a framework so that back-end subsystems can be plugged into POE::Kernel. Each subsytem plug-in would need a certain number of standard callbacks, such as: _data_foo_clear_session() and _data_foo_finalize(). These are currently called from standard locations in POE::Kernel, but they could easily be called from a list of callbacks rather than explicitly. Build a framework so that public APIs for the subsystems can also be plugged in. I have no idea yet what this would entail.
This task has become more important recently. We need to allow developers to create new POE::Resource and POE::API classes without modifying a core POE module. Currently, POE::Resources must be modified to include new resources, and there are various places throughout the source code that need to know which resources are loaded. Furthermore, some resources need to know about others. POE::Resource::Sessions' _data_ses_free() method calls the _data_*_clear_session() method of every loaded resource. POE::Kernel's run() method calls _data_*_initialize() for multiple resources. Its finalize_kernel() method calls _data_*_finalize(), also. Even wiggier, resource initialization and finalization may be order dependent. For example, you can't actually free up the session until all the resources it uses are freed. There is some dependency information that needs to be accounted for. -- Rocco Caputo - rcaputo@pobox.com - http://poe.perl.org/