diff options
Diffstat (limited to 'TAO/orbsvcs/orbsvcs/Naming/CosNaming_i.h')
-rw-r--r-- | TAO/orbsvcs/orbsvcs/Naming/CosNaming_i.h | 189 |
1 files changed, 0 insertions, 189 deletions
diff --git a/TAO/orbsvcs/orbsvcs/Naming/CosNaming_i.h b/TAO/orbsvcs/orbsvcs/Naming/CosNaming_i.h deleted file mode 100644 index 09296a91e69..00000000000 --- a/TAO/orbsvcs/orbsvcs/Naming/CosNaming_i.h +++ /dev/null @@ -1,189 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// cos -// -// = FILENAME -// CosNaming_i.h -// -// = AUTHOR -// Marina Spivak <marina@cs.wustl.edu> & -// Sergio Flores-Gaitan <sergio@cs.wustl.edu> -// -// ============================================================================ - -#if !defined (COSNAMING_I_H) -#define COSNAMING_I_H - -#include "orbsvcs/CosNamingS.h" -#include "Entries.h" - -class TAO_ORBSVCS_Export NS_NamingContext : public POA_CosNaming::NamingContext - // = TITLE - // This class implements the NamingContext interface that is part of the - // CosNaming idl module. - // - // = DESCRIPTION - // Extensive comments can be found in the idl file. -{ - public: - typedef ACE_Hash_Map_Manager<NS_ExtId, NS_IntId, ACE_Null_Mutex> - HASH_MAP; - - NS_NamingContext (void); - // default constructor. - - ~NS_NamingContext (void); - // destructor. - - - virtual void bind (const CosNaming::Name &n, - CORBA::Object_ptr obj, - CORBA::Environment &IT_env); - - // create a binding for name <n> and object <obj> in the naming - // context. Compound names are treated as follows: ctx->bind - // (<c1; c2; c3; cn>, obj) = (ctx->resolve (<c1; c2; - // cn-1>))->bind (<cn>, obj) if the there already exists a - // binding for the specified name, <AlreadyBound> exception is - // thrown. Naming contexts should be bound using <bind_context> - // and <rebind_context> in order to participate in name - // resolution later. - - virtual void rebind (const CosNaming::Name &n, - CORBA::Object_ptr obj, - CORBA::Environment &IT_env); - // this is similar to <bind> operation above, except for when - // the binding for the specified name already exists in the - // specified context. In that case, the existing binding is - // replaced with the new one. - - virtual void bind_context (const CosNaming::Name &n, - CosNaming::NamingContext_ptr nc, - CORBA::Environment &IT_env); - // This is the version of <bind> specifically for binding naming - // contexts, so that they will participate in name resolution - // when compound names are passed to be resolved. - - virtual void rebind_context (const CosNaming::Name &n, - CosNaming::NamingContext_ptr nc, - CORBA::Environment &IT_env); - // This is a version of <rebind> specifically for naming - // contexts, so that they can participate in name resolution - // when compound names are passed. - - virtual CORBA::Object_ptr resolve (const CosNaming::Name &n, - CORBA::Environment &IT_env); - // Return object reference that is bound to the name. Compound - // name resolve is defined as follows: ctx->resolve (<c1; c2; - // cn>) = ctx->resolve (<c1; c2 cn-1>)->resolve (<cn>) The - // naming service does not return the type of the object. - // Clients are responsible for "narrowing" the object to the - // appropriate type. - - virtual void unbind (const CosNaming::Name &n, - CORBA::Environment &IT_env); - // Remove the name binding from the context. When compound - // names are used, unbind is defined as follows: ctx->unbind - // (<c1; c2; cn>) = (ctx->resolve (<c1; c2; cn-1>))->unbind - // (<cn>) - - virtual CosNaming::NamingContext_ptr new_context (CORBA::Environment &IT_env); - // This operation returns a new naming context implemented by - // the same naming server in which the operation was invoked. - // The context is not bound. - - virtual CosNaming::NamingContext_ptr bind_new_context (const CosNaming::Name &n, - CORBA::Environment &IT_env); - // This operation creates a new context and binds it to the name - // supplied as an argument. The newly-created context is - // implemented by the same server as the context in which it was - // bound (the name argument excluding the last component). - - virtual void destroy (CORBA::Environment &IT_env); - // Delete the naming context. NOTE: the user should <unbind> - // any bindings in which the given context is bound to some - // names before invoking <destroy> operation on it. Ignoring - // this rule may cause unexpected behaviour. <destroy> deletes - // the context object if it is not bound to any names in the - // given address space. <destroys> decrements the reference - // count of the context if bindings to it exist. - - virtual void list (CORBA::ULong how_many, - CosNaming::BindingList_out bl, - CosNaming::BindingIterator_out bi, - CORBA::Environment &IT_env); - // Returns at most the requested number of bindings <how_many> - // in <bl>. If the naming context contains additional bindings, - // they are returned with a BindingIterator. In the naming - // context does not contain any additional bindings <bi> - // returned as null. - -protected: - // = These are the helper methods used by other methods. - - CosNaming::NamingContext_ptr get_context (const CosNaming::Name &name); - // This is used by methods that need to resolve a compound name to - // get the reference to the target context before performing the - // actual operation (e.g. bind, unbind, etc.) Takes a full name - // (including the last component that doesn't need to be resolved) - // Returns a pointer to the target context. - - private: - - HASH_MAP context_; - // This implementation of NamingContext uses ACE thread-safe Hash - // Map for storage and manipulation of name-object bindings. - - ACE_Lock *lock_; - // Lock to serialize access to the underlying data structure. - // This is a lock adapter that hides the type of lock, which may be - // a null lock, if the ORB decides it is not needed. - -}; - -class TAO_ORBSVCS_Export NS_BindingIterator : public POA_CosNaming::BindingIterator - // = TITLE - // This class implements the BindingIterator interface - // that is part of the CosNaming idl module. - // - // = DESCRIPTION - // NS_BindingIterator constructor expects a pointer to a - // DYNAMICALLY allocated hash map iterator. Destructor - // deallocates hash map iterator. -{ - public: - // = Intialization and termination methods. - NS_BindingIterator (NS_NamingContext::HASH_MAP::ITERATOR *hash_iter, ACE_Lock * lock); - // constructor. - - ~NS_BindingIterator (void); - // destructor. - - CORBA::Boolean next_one (CosNaming::Binding_out b, - CORBA::Environment &IT_env); - // 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 &IT_env); - // This operation returns at most the requested number of - // bindings. - - void destroy (CORBA::Environment &IT_env); - // This operation destroys the iterator. - - private: - NS_NamingContext::HASH_MAP::ITERATOR *hash_iter_; - // A pointer to the hash map iterator. - - ACE_Lock *lock_; - // lock passed on from NS_NamingContext to serialize access - // to the internal data structure. -}; - -#endif /* COSNAMING_I_H */ |