ACE  6.1.2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Protected Member Functions | Private Member Functions | Private Attributes | Static Private Attributes | Friends
ACE_Framework_Repository Class Reference

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

#include <Framework_Component.h>

Inheritance diagram for ACE_Framework_Repository:
Inheritance graph
[legend]
Collaboration diagram for ACE_Framework_Repository:
Collaboration graph
[legend]

List of all members.

Public Types

enum  { DEFAULT_SIZE = ACE_DEFAULT_FRAMEWORK_REPOSITORY_SIZE }

Public Member Functions

 ~ACE_Framework_Repository (void)
int open (int size=DEFAULT_SIZE)
 Initialize the repository.
int close (void)
int register_component (ACE_Framework_Component *fc)
int remove_component (const ACE_TCHAR *name)
int remove_dll_components (const ACE_TCHAR *dll_name)
 Remove all components associated with a particular dll.
int current_size (void) const
 Return the current size of the repository.
int total_size (void) const
 Return the total size of the repository.
void dump (void) const
 Dump the state of an object.

Static Public Member Functions

static ACE_Framework_Repositoryinstance (int size=ACE_Framework_Repository::DEFAULT_SIZE)
 Get pointer to a process-wide ACE_Framework_Repository.
static void close_singleton (void)
 Delete the dynamically allocated Singleton.

Public Attributes

 ACE_ALLOC_HOOK_DECLARE
 Declare the dynamic allocation hooks.

Protected Member Functions

 ACE_Framework_Repository (int size=ACE_Framework_Repository::DEFAULT_SIZE)
 Initialize the repository.

Private Member Functions

int remove_dll_components_i (const ACE_TCHAR *dll_name)
 Actually removes the dll components, must be called with locks held.
void compact (void)

Private Attributes

ACE_Framework_Component ** component_vector_
 Contains all the framework components.
int current_size_
 Current number of components.
int total_size_
 Maximum number of components.
ACE_SYNCH_MUTEX lock_
 Synchronization variable for the repository.

Static Private Attributes

static ACE_Framework_Repositoryrepository_ = 0
 Pointer to a process-wide ACE_Framework_Repository.
static sig_atomic_t shutting_down_ = 0

Friends

class ACE_Framework_Component

Detailed Description

Contains all framework components used by an application.

This class contains a vector of ACE_Framework_Component *'s. On destruction, framework components are destroyed in the reverse order that they were added originally.


Member Enumeration Documentation

anonymous enum
Enumerator:
DEFAULT_SIZE 

Constructor & Destructor Documentation

Close down the repository and free up dynamically allocated resources.

Initialize the repository.


Member Function Documentation

Close down the repository and free up dynamically allocated resources, also called by dtor.

Delete the dynamically allocated Singleton.

void ACE_Framework_Repository::compact ( void  )
private

Compact component_vector_ after components have been removed__maintains order.

int ACE_Framework_Repository::current_size ( void  ) const
inline

Return the current size of the repository.

void ACE_Framework_Repository::dump ( void  ) const

Dump the state of an object.

Get pointer to a process-wide ACE_Framework_Repository.

Initialize the repository.

Insert a new component. Returns -1 when the repository is full and 0 on success.

Remove a component. Returns -1 on error or if component not found and 0 on success.

Remove all components associated with a particular dll.

Actually removes the dll components, must be called with locks held.

int ACE_Framework_Repository::total_size ( void  ) const
inline

Return the total size of the repository.


Friends And Related Function Documentation

friend class ACE_Framework_Component
friend

Member Data Documentation

Declare the dynamic allocation hooks.

Contains all the framework components.

Current number of components.

Synchronization variable for the repository.

Pointer to a process-wide ACE_Framework_Repository.

Flag set when repository is the process of shutting down. This is necessary to keep from self-deadlocking since some of the components might make calls back to the repository to unload their components, e.g., ACE_DLL_Manager.

Maximum number of components.


The documentation for this class was generated from the following files: