# ACE_Framework_Repository Class Reference

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

`#include <Framework_Component.h>`

Collaboration diagram for ACE_Framework_Repository:

[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

ACE_Framework_Repository * | instance (int size=ACE_Framework_Repository::DEFAULT_SIZE)
| Get pointer to a process-wide <ace_framework_repository>.
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)
| ACE_Framework_Repository (const ACE_Framework_Repository &)
| Disallow copying and assignment.
ACE_Framework_Repository & | operator= (const ACE_Framework_Repository &)

## 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.

## Static Private Attributes

ACE_Framework_Repository * | repository_ = 0
| Pointer to a process-wide ACE_Framework_Repository.
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

Enumeration values:

  DEFAULT_SIZE |

## Constructor & Destructor Documentation

ACE_Framework_Repository::~ACE_Framework_Repository | ( | void |  | ) |

| Close down the repository and free up dynamically allocated resources.

ACE_Framework_Repository::ACE_Framework_Repository | ( | int | size = `ACE_Framework_Repository::DEFAULT_SIZE` | ) | `[protected]`

| Initialize the repository.

ACE_Framework_Repository::ACE_Framework_Repository | ( | const ACE_Framework_Repository & |  | ) | `[private]`

| Disallow copying and assignment.

## Member Function Documentation

int ACE_Framework_Repository::close | ( | void |  | ) |

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

void ACE_Framework_Repository::close_singleton | ( | void |  | ) | `[static]`

| Delete the dynamically allocated Singleton.

void ACE_Framework_Repository::compact | ( | void |  | ) | `[private]`

| Compact component_vector_ after components have been removed__maintains order.

ACE_INLINE int ACE_Framework_Repository::current_size | ( | void |  | ) | const

| Return the current size of the repository.

void ACE_Framework_Repository::dump | ( | void |  | ) | const

| Dump the state of an object.

ACE_Framework_Repository * ACE_Framework_Repository::instance | ( | int | size = `ACE_Framework_Repository::DEFAULT_SIZE` | ) | `[static]`

| Get pointer to a process-wide <ace_framework_repository>.

int ACE_Framework_Repository::open | ( | int | size = `DEFAULT_SIZE` | ) |

| Initialize the repository.

ACE_Framework_Repository& ACE_Framework_Repository::operator= | ( | const ACE_Framework_Repository & |  | ) | `[private]`

int ACE_Framework_Repository::register_component | ( | ACE_Framework_Component * | fc | ) |

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

int ACE_Framework_Repository::remove_component | ( | const ACE_TCHAR * | name | ) |

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

int ACE_Framework_Repository::remove_dll_components | ( | const ACE_TCHAR * | dll_name | ) |

| Remove all components associated with a particular dll.

int ACE_Framework_Repository::remove_dll_components_i | ( | const ACE_TCHAR * | dll_name | ) | `[private]`

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

ACE_INLINE int ACE_Framework_Repository::total_size | ( | void |  | ) | const

| Return the total size of the repository.

## Friends And Related Function Documentation

friend class ACE_Framework_Component`[friend]`

## Member Data Documentation

ACE_Framework_Repository::ACE_ALLOC_HOOK_DECLARE

| Declare the dynamic allocation hooks.

ACE_Framework_Component** ACE_Framework_Repository::component_vector_`[private]`

| Contains all the framework components.

int ACE_Framework_Repository::current_size_`[private]`

| Current number of components.

ACE_Framework_Repository * ACE_Framework_Repository::repository_ = 0`[static, private]`

| Pointer to a process-wide ACE_Framework_Repository.

sig_atomic_t ACE_Framework_Repository::shutting_down_ = 0`[static, private]`

| 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.

int ACE_Framework_Repository::total_size_`[private]`

| Maximum number of components.

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

- Framework_Component.h
- Framework_Component.cpp
- Framework_Component.inl