summaryrefslogtreecommitdiff
path: root/ace/Framework_Component.h
diff options
context:
space:
mode:
Diffstat (limited to 'ace/Framework_Component.h')
-rw-r--r--ace/Framework_Component.h24
1 files changed, 21 insertions, 3 deletions
diff --git a/ace/Framework_Component.h b/ace/Framework_Component.h
index 3cd7302f79b..8a23b491b43 100644
--- a/ace/Framework_Component.h
+++ b/ace/Framework_Component.h
@@ -56,7 +56,12 @@ public:
friend class ACE_Framework_Repository;
/// Constructor.
- ACE_Framework_Component (const void *_this);
+ ACE_Framework_Component (void *_this,
+ const ACE_TCHAR *dll_name = 0,
+ const ACE_TCHAR *name = 0);
+
+ /// Close the contained singleton.
+ virtual void close_singleton (void) = 0;
protected:
/// Destructor.
@@ -65,6 +70,12 @@ protected:
private:
/// Pointer to the actual component.
const void *this_;
+
+ /// Library associated with this component
+ const ACE_TCHAR *dll_name_;
+
+ /// Component name
+ const ACE_TCHAR *name_;
};
/**
@@ -108,7 +119,14 @@ public:
/// Insert a new component. Returns -1 when the repository is full
/// and 0 on success.
- int register_component (const ACE_Framework_Component *fc);
+ int register_component (ACE_Framework_Component *fc);
+
+ /// Remove a component. Returns -1 on error or if component not found
+ /// and 0 on success.
+ int remove_component (const ACE_TCHAR *name);
+
+ /// Remove all components associated with a particular dll.
+ int remove_dll_components (const ACE_TCHAR *dll_name);
/// Return the current size of the repository.
int current_size (void) const;
@@ -129,7 +147,7 @@ private:
ACE_Framework_Repository (int size = ACE_Framework_Repository::DEFAULT_SIZE);
/// Contains all the framework components.
- const ACE_Framework_Component **component_vector_;
+ ACE_Framework_Component **component_vector_;
/// Current number of components.
int current_size_;