diff options
Diffstat (limited to 'TAO/orbsvcs/orbsvcs/Naming/Naming_Context.h')
-rw-r--r-- | TAO/orbsvcs/orbsvcs/Naming/Naming_Context.h | 125 |
1 files changed, 31 insertions, 94 deletions
diff --git a/TAO/orbsvcs/orbsvcs/Naming/Naming_Context.h b/TAO/orbsvcs/orbsvcs/Naming/Naming_Context.h index a48ea9b3812..3eeaf616d06 100644 --- a/TAO/orbsvcs/orbsvcs/Naming/Naming_Context.h +++ b/TAO/orbsvcs/orbsvcs/Naming/Naming_Context.h @@ -20,23 +20,15 @@ class TAO_Naming_Context_Impl; -// This is to remove "inherits via dominance" warnings from MSVC. -#if defined (_MSC_VER) -# pragma warning (disable : 4250) -#endif /* _MSC_VER */ - -class TAO_ORBSVCS_Export TAO_Naming_Context : - public virtual PortableServer::RefCountServantBase, - public virtual POA_CosNaming::NamingContext +class TAO_ORBSVCS_Export TAO_Naming_Context : public POA_CosNaming::NamingContext { // = TITLE // This class plays a role of the 'Abstraction' (aka 'Interface') - // in the Bridge pattern architecture of the - // CosNaming::NamingContext implementation. + // in the Bridge pattern architecture for the Naming Service implementation. // // = DESCRIPTION // This class simply forwards all client requests to a concrete - // NamingContext implementation through its <impl_> pointer. See + // Naming Service implementation through its <impl_> pointer. See // README file for more info. Comments for the idl methods // describe methods semantics - actual actions are carried out by // concrete implementors. @@ -44,24 +36,20 @@ class TAO_ORBSVCS_Export TAO_Naming_Context : public: // = Initialization and termination methods. - TAO_Naming_Context (TAO_Naming_Context_Impl *impl); - // Constructor. Initializes <impl_> with a concrete implementation. + TAO_Naming_Context (void); + // Constructor. ~TAO_Naming_Context (void); - // Destructor. + // destructor. + + void impl (TAO_Naming_Context_Impl *impl); + // Initialize <impl_> with a concrete implementation. // = CosNaming::NamingContext idl interface methods. virtual void bind (const CosNaming::Name &n, CORBA::Object_ptr obj, - CORBA::Environment &ACE_TRY_ENV = - TAO_default_environment ()) - ACE_THROW_SPEC ((CORBA::SystemException, - CosNaming::NamingContext::NotFound, - CosNaming::NamingContext::CannotProceed, - CosNaming::NamingContext::InvalidName, - CosNaming::NamingContext::AlreadyBound)); - + CORBA::Environment &ACE_TRY_ENV = TAO_default_environment ()); // 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>, @@ -72,13 +60,7 @@ public: virtual void rebind (const CosNaming::Name &n, CORBA::Object_ptr obj, - CORBA::Environment &ACE_TRY_ENV = - TAO_default_environment ()) - ACE_THROW_SPEC ((CORBA::SystemException, - CosNaming::NamingContext::NotFound, - CosNaming::NamingContext::CannotProceed, - CosNaming::NamingContext::InvalidName)); - + CORBA::Environment &ACE_TRY_ENV = TAO_default_environment ()); // 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 @@ -86,37 +68,20 @@ public: virtual void bind_context (const CosNaming::Name &n, CosNaming::NamingContext_ptr nc, - CORBA::Environment &ACE_TRY_ENV = - TAO_default_environment ()) - ACE_THROW_SPEC ((CORBA::SystemException, - CosNaming::NamingContext::NotFound, - CosNaming::NamingContext::CannotProceed, - CosNaming::NamingContext::InvalidName, - CosNaming::NamingContext::AlreadyBound)); - + CORBA::Environment &ACE_TRY_ENV = TAO_default_environment ()); // 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 &ACE_TRY_ENV = - TAO_default_environment ()) - ACE_THROW_SPEC ((CORBA::SystemException, - CosNaming::NamingContext::NotFound, - CosNaming::NamingContext::CannotProceed, - CosNaming::NamingContext::InvalidName)); + CORBA::Environment &ACE_TRY_ENV = TAO_default_environment ()); // 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 &ACE_TRY_ENV = - TAO_default_environment ()) - ACE_THROW_SPEC ((CORBA::SystemException, - CosNaming::NamingContext::NotFound, - CosNaming::NamingContext::CannotProceed, - CosNaming::NamingContext::InvalidName)); + CORBA::Environment &ACE_TRY_ENV = TAO_default_environment ()); // 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 @@ -124,60 +89,34 @@ public: // for "narrowing" the object to the appropriate type. virtual void unbind (const CosNaming::Name &n, - CORBA::Environment &ACE_TRY_ENV = - TAO_default_environment ()) - ACE_THROW_SPEC ((CORBA::SystemException, - CosNaming::NamingContext::NotFound, - CosNaming::NamingContext::CannotProceed, - CosNaming::NamingContext::InvalidName)); - + CORBA::Environment &ACE_TRY_ENV = TAO_default_environment ()); // 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 &ACE_TRY_ENV = - TAO_default_environment ()) - ACE_THROW_SPEC ((CORBA::SystemException)); - + virtual CosNaming::NamingContext_ptr new_context (CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment ()); // 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 &ACE_TRY_ENV = - TAO_default_environment ()) - ACE_THROW_SPEC ((CORBA::SystemException, - CosNaming::NamingContext::NotFound, - CosNaming::NamingContext::AlreadyBound, - CosNaming::NamingContext::CannotProceed, - CosNaming::NamingContext::InvalidName)); - + virtual CosNaming::NamingContext_ptr bind_new_context (const CosNaming::Name &n, + CORBA::Environment &ACE_TRY_ENV = TAO_default_environment ()); // 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 &ACE_TRY_ENV = - TAO_default_environment ()) - ACE_THROW_SPEC ((CORBA::SystemException, - CosNaming::NamingContext::NotEmpty)); - // 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. + virtual void destroy (CORBA::Environment &ACE_TRY_ENV = TAO_default_environment ()); + // 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. + // NOTE: this operation is a no-op on the root context. virtual void list (CORBA::ULong how_many, CosNaming::BindingList_out bl, CosNaming::BindingIterator_out bi, - CORBA::Environment &ACE_TRY_ENV = - TAO_default_environment ()) - ACE_THROW_SPEC ((CORBA::SystemException)); - + CORBA::Environment &ACE_TRY_ENV = TAO_default_environment ()); // 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 @@ -196,10 +135,10 @@ class TAO_ORBSVCS_Export TAO_Naming_Context_Impl { // = TITLE // This abstract base class plays a role of the 'Implementor' in the Bridge - // pattern architecture of the NamingContext implementation. + // pattern architecture for the implementation of the Naming Service. // // = DESCRIPTION - // Subclasses of TAO_Naming_Context_Impl provide concrete + // Subclasses of TAO_NamingContext_Impl provide concrete // implementations of the NamingContext functionality. public: @@ -267,12 +206,10 @@ public: // bound (the name argument excluding the last component). virtual void destroy (CORBA::Environment &ACE_TRY_ENV) = 0; - // 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. + // 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. + // NOTE: this operation is a no-op on the root context. virtual void list (CORBA::ULong how_many, CosNaming::BindingList_out &bl, |