summaryrefslogtreecommitdiff
path: root/TAO/orbsvcs/orbsvcs/Naming/Bindings_Iterator_T.h
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/orbsvcs/orbsvcs/Naming/Bindings_Iterator_T.h')
-rw-r--r--TAO/orbsvcs/orbsvcs/Naming/Bindings_Iterator_T.h67
1 files changed, 16 insertions, 51 deletions
diff --git a/TAO/orbsvcs/orbsvcs/Naming/Bindings_Iterator_T.h b/TAO/orbsvcs/orbsvcs/Naming/Bindings_Iterator_T.h
index 177061c8e67..95bffc2582e 100644
--- a/TAO/orbsvcs/orbsvcs/Naming/Bindings_Iterator_T.h
+++ b/TAO/orbsvcs/orbsvcs/Naming/Bindings_Iterator_T.h
@@ -16,7 +16,7 @@
#ifndef TAO_BINDINGS_ITERATOR_T_H
#define TAO_BINDINGS_ITERATOR_T_H
-#include "Hash_Naming_Context.h"
+#include "orbsvcs/CosNamingS.h"
template <class ITERATOR, class TABLE_ENTRY>
class TAO_Bindings_Iterator : public virtual PortableServer::RefCountServantBase,
@@ -24,99 +24,64 @@ class TAO_Bindings_Iterator : public virtual PortableServer::RefCountServantBase
{
// = TITLE
// This class implements the <BindingIterator> interface that is
- // part of the <CosNaming> idl module. This class works with Hash_Map-based
- // implementations of CosNaming::NamingContext.
+ // part of the <CosNaming> idl module based on the Hash_Map
+ // implementation for CosNaming::NamingContext.
//
// = DESCRIPTION
- // This class is templatized by the types of the underlying
- // hash table iterator and hash table entry, so that it can be
- // used for both TAO_Transient_Naming_Context and
- // TAO_Persistent_Naming_Context (and any other classes with
- // underlying data structures supporting
- // ACE_Hash_Map_Manager/Iterator - like interfaces).
- //
- // Instances of <TAO_Bindings_Iterator>s affect reference counts
- // of corresponding Naming Contexts. Reference count on a
- // Naming Context is incremented by one for a lifetime of each
- // instance of <TAO_Bindings_Iterator> created for that
- // context, i.e., a Naming Context cannot
- // be cleaned up (but, of course, it can be invalidated) before
- // all of its iterators have been cleaned up. When <destroy>
- // method is invoked on a Naming Context, all of its iterators are
- // destroyed in a "lazy evaluation" fashion, i.e., whenever a next
- // operation is invoked on an iterator, and it can detect that
- // the corresponding Naming Context has been invalidated, the
- // iterator is destroyed.
- //
+ // <TAO_Hash_Binding_Iterator> constructor expects a pointer to a
+ // dynamically allocated hash map iterator. Destructor
+ // deallocates hash map iterator.
public:
// = Intialization and termination methods.
- TAO_Bindings_Iterator (TAO_Hash_Naming_Context *context,
- ITERATOR *hash_iter,
+ TAO_Bindings_Iterator (ITERATOR *hash_iter,
PortableServer::POA_ptr poa,
ACE_SYNCH_RECURSIVE_MUTEX &lock);
- // Constructor expects a pointer to a
- // dynamically allocated hash map iterator (destructor
- // deallocates hash map iterator).
-
+ // Constructor.
~TAO_Bindings_Iterator (void);
// Destructor.
- virtual PortableServer::POA_ptr _default_POA (CORBA::Environment &env);
// Returns the Default POA of this Servant object
-
- // = Idl methods.
+ virtual PortableServer::POA_ptr _default_POA (CORBA::Environment &env);
CORBA::Boolean next_one (CosNaming::Binding_out b,
CORBA::Environment &ACE_TRY_ENV)
ACE_THROW_SPEC ((CORBA::SystemException));
- // This operation passes back the next unseen binding. True is
- // returned if a binding is passed back, and false is returned otherwise.
+ // This operation returns the next binding. If there are no more
+ // bindings false is returned.
CORBA::Boolean next_n (CORBA::ULong how_many,
CosNaming::BindingList_out bl,
CORBA::Environment &ACE_TRY_ENV)
ACE_THROW_SPEC ((CORBA::SystemException));
- // This operation passes back at most <how_many> unseen bindings.
- // True is returned if bindings were passed back, and false is
- // returned if no bindings were passed back.
+ // This operation returns at most the requested number of bindings.
void destroy (CORBA::Environment &ACE_TRY_ENV)
ACE_THROW_SPEC ((CORBA::SystemException));
+
// This operation destroys the iterator.
// = Helper method.
static int populate_binding (TABLE_ENTRY *hash_entry,
CosNaming::Binding &b);
- // Helper function used by TAO_*_Naming_Context and
+ // Helper function used by TAO_Hash_Naming_Context and
// TAO_BindingIterator: populate a binding <b> with info contained
// in <hash_entry>. Return 1 if everything went smoothly, 0 if an
// allocation failed.
private:
int destroyed_;
- // Flag indicating whether this iterator is still valid. (The
- // iterator becomes invalid when <destroy> method has been invoked
- // on it, or when <destroy> method has been invoked on the
- // corresponding Naming Context.) This flag is necessary
- // because immediate destruction of this servant might not be possible
- // due to pending requests in the POA.
-
- TAO_Hash_Naming_Context *context_;
- // Pointer to the Naming Context we are iterating over. We need
- // this pointer to make sure the context is still valid before
- // each iteration, and to decrement its reference count once we are <destroyed>.
ITERATOR *hash_iter_;
// A pointer to the hash map iterator.
ACE_SYNCH_RECURSIVE_MUTEX &lock_;
- // Lock passed on from Naming Context to serialize access to the
+ // Lock passed on from <TAO_NamingContext> to serialize access to the
// internal data structure.
PortableServer::POA_var poa_;
- // Implement a different _default_POA().
+ // Implement a different _default_POA()
};
#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)