Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members   Related Pages  

Framework_Component.h File Reference

#include "ace/pre.h"
#include "ace/Synch.h"
#include "ace/Framework_Component_T.h"
#include "ace/post.h"

Include dependency graph for Framework_Component.h:

Include dependency graph

This graph shows which files directly or indirectly include this file:

Included by dependency graph

Go to the source code of this file.


class  ACE_Framework_Component
 Base class that defines a uniform interface for all managed framework components. More...

class  ACE_Framework_Repository
 Contains all framework components used by an application. More...



Detailed Description

Framework_Component.h,v 2003/02/21 18:36:32 chad Exp

A prototype mechanism that allows framework components, singletons such as ACE_Reactor, ACE_Proactor, etc, to be registered with a central repository managed by the <ACE_Object_Manager> or <ACE_Service_Config> that will handle destruction.

This technique obviates changing ACE_Object_Manager and ACE_Service_Config everytime a new framework is added. Which also means that unused framework components don't need to linked into the final application which is important for applications with stringent footprint requirements.

Framework components need only provide a static method, close_singleton() and add the ACE_REGISTER_FRAMEWORK_COMPONENT macro call to their instance() methods in order to participate. Components that don't have a close_singleton() method can also participate via template specialization of ACE_Framework_Component_T.

This design uses the External Polymorphism pattern to avoid having to derive all framework components from a common base class that has virtual methods (this is crucial to avoid unnecessary overhead), and is based on the dump debugging implementation found in <ace/Dump.h>.

Don Hinton <>.

Definition in file Framework_Component.h.

Define Documentation


Definition at line 45 of file Framework_Component.h.

Generated on Mon Jun 16 11:36:58 2003 for ACE by doxygen1.2.14 written by Dimitri van Heesch, © 1997-2002