summaryrefslogtreecommitdiff
path: root/CIAO/ciao/Object_Set_T.h
diff options
context:
space:
mode:
Diffstat (limited to 'CIAO/ciao/Object_Set_T.h')
-rw-r--r--CIAO/ciao/Object_Set_T.h130
1 files changed, 0 insertions, 130 deletions
diff --git a/CIAO/ciao/Object_Set_T.h b/CIAO/ciao/Object_Set_T.h
deleted file mode 100644
index b11632a5e1b..00000000000
--- a/CIAO/ciao/Object_Set_T.h
+++ /dev/null
@@ -1,130 +0,0 @@
-// $Id$
-
-/**
- * @file Object_Set_T.h
- *
- * Helper template classes for maintaining and managing object
- * reference sets.
- *
- * @author Nanbor Wang <nanbor@cs.wustl.edu>
- */
-
-#ifndef CIAO_OBJECT_SET_T_H
-#define CIAO_OBJECT_SET_T_H
-#include /**/ "ace/pre.h"
-
-#include "tao/ORB_Constants.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-namespace CIAO
-{
- /**
- * @class Object_Set
- *
- * @brief A helper template class for maintaining and managing a set
- * of object reference.
- *
- * This class provides a naive implementation of an object reference
- * set. It is naive because it simply keeps object references in an
- * objref_var array without checking for duplication. More
- * importantly, it takes O(n) to to look for an object reference and
- * return it. What we really need is a thread-safe hash_set<> like
- * class here. Since this is mostly used only during setup/assemble
- * time for a CIAO application, i.e., not on critical path, this
- * class serves as a place holder for later, more efficient
- * implementation.
- */
- template <class T, class T_var>
- class Object_Set
- {
- public:
- /**
- * Default contructor that also allows initializing the initial
- * capacity of the set and the increment step.
- */
- Object_Set (CORBA::ULong init_capacity = 10,
- CORBA::ULong step = 10);
-
- /// Default destructor.
- ~Object_Set (void);
-
- /// Adding a new object reference to the set. Return -1 if error
- /// occurred.
- CORBA::Long add (T *objref);
-
- /// Removing an object from the set. Return -1 if error occurred.
- CORBA::Long remove (T *objref);
-
- /// Removing all objects from the set. Return -1 if error occurred.
- CORBA::Long remove_all (void);
-
- /// Access the underlying T_var array directly. This is added to
- /// get around a bug in TAO's sequence of object C++ mapping.
- T_var &at (CORBA::ULong index);
-
- /**
- * Get a copy of the object reference set into the incoming array
- * @c buffer with capacity of @c size. @c buffer is usually
- * allocated using a sequence's @c allocbuf method. Notice that
- * caller is responsible to release the object references in
- * buffer.
- *
- * @retval actual number of objrefs copied into @c buffer.
- */
- CORBA::ULong copy (CORBA::ULong size,
- T **buffer);
-
- /**
- * Check if an object is in the set. Return 0 if false.
- */
- int object_in_set (T *objref);
-
- /// Query the current size the set contains.
- CORBA::ULong size (void) const;
-
- /// Query the current capacity the set.
- CORBA::ULong capacity (void) const;
-
- /**
- * Release all object references.
- */
- void release (void);
-
- protected:
- /// Grow the internal array holding the object references.
- void grow (void);
-
- /// Pointer to the dynamically allocated buffer that holds the
- /// object references.
- T_var *buffer_;
-
- /// Maximun capacity of this->buffer_;
- CORBA::ULong capacity_;
-
- /// Current size in the set.
- CORBA::ULong size_;
-
- /// How many more slots to add each time we expand the capacity of
- /// this set.
- CORBA::ULong step_;
- };
-
-}
-
-#if defined (__ACE_INLINE__)
-#include "Object_Set_T.inl"
-#endif /* !defined INLINE */
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-#include "Object_Set_T.cpp"
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
-
-#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
-#pragma implementation ("Object_Set_T.cpp")
-#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
-
-#include /**/ "ace/post.h"
-#endif /* CIAO_OBJECT_SET_T_H */