Perl Object Environment: Difference between revisions

Content deleted Content added
m formatting fix
m POE Architecture: Layers of Abstraction: link disambiguation and formatting fixes
Line 12:
 
==POE Architecture: Layers of Abstraction ==
POE, The '''Perl Object Environment''' can be thought of as a tiny modular [[operating system]]. One or more POE programs or instances can be run concurrently and are generally well suited for [[cooperative multitasking]]. The POE package consists of [[namespacesnamespace]]s and [[abstractionAbstraction (computer science)|abstractions]]s that guide future development of POE in an open-ended [[CPAN|CPAN-style]] convention.
 
===The event layer===
The informal architecture consists of a set of layers with a [[Kernel (computeroperating sciencesystem)|kernel]] on the bottom. This tiny kernel represents the events layer which operates as the main loop of each running POE instance. The first call is to the "event dispatcher" - '''POE::Kernel'''.
 
The POE::Kernel namespace contains a suite of functions which are plugged into the kernel itself. These loop abstractions are designed after POE's standardized event loop bridge interface - '''POE::Loop'''. These can be mixed and matched as needed to provide runtime services and a lean facility for [[interprocess communication]]. The basic functions are '''POE::Loop::Event''', '''POE::Loop::Poll''' and '''POE::Loop::Select'''. Also available are '''POE::Loop::Tk''' and '''POE::Loop::Gtk''' which offer hooks into other loop bridges in the external environment. If that isn't enough, the POE::Loop kernel abstraction provides reusable signal callbacks, time or alarm callbacks, and filehandle activity callbacks as well as administrative functions such as initializing, executing, and finalizing event loops.