Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members  

TAO_Naming_Context_Impl Class Reference

This abstract base class plays a role of the 'Implementor' in the Bridge pattern architecture of the NamingContext implementation. More...

#include <Naming_Context_Interface.h>

Inheritance diagram for TAO_Naming_Context_Impl:

Inheritance graph
[legend]
List of all members.

Public Methods

virtual ~TAO_Naming_Context_Impl (void)
 Destructor. More...

virtual void bind (const CosNaming::Name &n, CORBA::Object_ptr obj ACE_ENV_ARG_DECL)=0
 Create a binding for name <n> and object <obj> in the naming context. More...

virtual void rebind (const CosNaming::Name &n, CORBA::Object_ptr obj ACE_ENV_ARG_DECL)=0
 This is similar to <bind> operation above, except for when the binding for the specified name already exists in the specified context. More...

virtual void bind_context (const CosNaming::Name &n, CosNaming::NamingContext_ptr nc ACE_ENV_ARG_DECL)=0
 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. More...

virtual void rebind_context (const CosNaming::Name &n, CosNaming::NamingContext_ptr nc ACE_ENV_ARG_DECL)=0
 This is a version of <rebind> specifically for naming contexts, so that they can participate in name resolution when compound names are passed. More...

virtual CORBA::Object_ptr resolve (const CosNaming::Name &n ACE_ENV_ARG_DECL)=0
 Return object reference that is bound to the name. More...

virtual void unbind (const CosNaming::Name &n ACE_ENV_ARG_DECL)=0
 Remove the name binding from the context. More...

virtual CosNaming::NamingContext_ptr new_context (ACE_ENV_SINGLE_ARG_DECL)=0
 This operation returns a new naming context implemented by the same naming server in which the operation was invoked. More...

virtual CosNaming::NamingContext_ptr bind_new_context (const CosNaming::Name &n ACE_ENV_ARG_DECL)=0
 This operation creates a new context and binds it to the name supplied as an argument. More...

virtual void destroy (ACE_ENV_SINGLE_ARG_DECL)=0
 Delete the naming context. More...

virtual void list (CORBA::ULong how_many, CosNaming::BindingList_out &bl, CosNaming::BindingIterator_out &bi ACE_ENV_ARG_DECL)=0
 Returns at most the requested number of bindings <how_many> in <bl>. More...

virtual PortableServer::POA_ptr _default_POA (void)=0
 Returns the Default POA of this Servant object. More...


Detailed Description

This abstract base class plays a role of the 'Implementor' in the Bridge pattern architecture of the NamingContext implementation.

Subclasses of TAO_Naming_Context_Impl provide concrete implementations of the NamingContext functionality.


Constructor & Destructor Documentation

TAO_Naming_Context_Impl::~TAO_Naming_Context_Impl void    [virtual]
 

Destructor.


Member Function Documentation

virtual PortableServer::POA_ptr TAO_Naming_Context_Impl::_default_POA void    [pure virtual]
 

Returns the Default POA of this Servant object.

Reimplemented in TAO_Hash_Naming_Context.

virtual void TAO_Naming_Context_Impl::bind const CosNaming::Name   n,
CORBA::Object_ptr obj    ACE_ENV_ARG_DECL
[pure virtual]
 

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.

Reimplemented in TAO_Hash_Naming_Context, and TAO_Storable_Naming_Context.

virtual void TAO_Naming_Context_Impl::bind_context const CosNaming::Name   n,
CosNaming::NamingContext_ptr nc    ACE_ENV_ARG_DECL
[pure virtual]
 

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.

Reimplemented in TAO_Hash_Naming_Context, and TAO_Storable_Naming_Context.

virtual CosNaming::NamingContext_ptr TAO_Naming_Context_Impl::bind_new_context const CosNaming::Name &n    ACE_ENV_ARG_DECL [pure virtual]
 

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

Reimplemented in TAO_Hash_Naming_Context, and TAO_Storable_Naming_Context.

virtual void TAO_Naming_Context_Impl::destroy ACE_ENV_SINGLE_ARG_DECL    [pure virtual]
 

Delete the naming context.

The user should take care to <unbind> any bindings in which the given context is bound to some names, to avoid dangling references when invoking <destroy> operation. NOTE: <destory> is a no-op on the root context. NOTE: after <destroy> is invoked on a Naming Context, all BindingIterators associated with that Naming Context are also destroyed.

Reimplemented in TAO_Hash_Naming_Context, and TAO_Storable_Naming_Context.

virtual void TAO_Naming_Context_Impl::list CORBA::ULong    how_many,
CosNaming::BindingList_out &    bl,
CosNaming::BindingIterator_out &bi    ACE_ENV_ARG_DECL
[pure virtual]
 

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.

Reimplemented in TAO_Persistent_Naming_Context, TAO_Storable_Naming_Context, and TAO_Transient_Naming_Context.

virtual CosNaming::NamingContext_ptr TAO_Naming_Context_Impl::new_context ACE_ENV_SINGLE_ARG_DECL    [pure virtual]
 

This operation returns a new naming context implemented by the same naming server in which the operation was invoked.

The context is not bound.

Reimplemented in TAO_Persistent_Naming_Context, TAO_Storable_Naming_Context, and TAO_Transient_Naming_Context.

virtual void TAO_Naming_Context_Impl::rebind const CosNaming::Name   n,
CORBA::Object_ptr obj    ACE_ENV_ARG_DECL
[pure virtual]
 

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.

Reimplemented in TAO_Hash_Naming_Context, and TAO_Storable_Naming_Context.

virtual void TAO_Naming_Context_Impl::rebind_context const CosNaming::Name   n,
CosNaming::NamingContext_ptr nc    ACE_ENV_ARG_DECL
[pure virtual]
 

This is a version of <rebind> specifically for naming contexts, so that they can participate in name resolution when compound names are passed.

Reimplemented in TAO_Hash_Naming_Context, and TAO_Storable_Naming_Context.

virtual CORBA::Object_ptr TAO_Naming_Context_Impl::resolve const CosNaming::Name &n    ACE_ENV_ARG_DECL [pure virtual]
 

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.

Reimplemented in TAO_Hash_Naming_Context, and TAO_Storable_Naming_Context.

virtual void TAO_Naming_Context_Impl::unbind const CosNaming::Name &n    ACE_ENV_ARG_DECL [pure virtual]
 

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

Reimplemented in TAO_Hash_Naming_Context, and TAO_Storable_Naming_Context.


The documentation for this class was generated from the following files:
Generated on Thu Oct 10 22:17:24 2002 for TAO_CosNaming by doxygen1.2.13.1 written by Dimitri van Heesch, © 1997-2001