diff options
author | Johnny Willemsen <jwillemsen@remedy.nl> | 2004-08-18 12:25:38 +0000 |
---|---|---|
committer | Johnny Willemsen <jwillemsen@remedy.nl> | 2004-08-18 12:25:38 +0000 |
commit | 8dac372c202b4872378a2e3f3c66c571c46a93fc (patch) | |
tree | ec8616a45b70aae0c1ffdf7dc85ac65a3e68abb0 | |
parent | 778de22bf9f8a5744287894127c664b93c499a4e (diff) | |
download | ATCD-8dac372c202b4872378a2e3f3c66c571c46a93fc.tar.gz |
ChangeLogTag: Wed Aug 18 10:14:12 UTC 2004 Johnny Willemsen <jwillemsen@remedy.nl>
4 files changed, 86 insertions, 86 deletions
diff --git a/TAO/tao/ObjRefTemplate/ObjectReferenceTemplate_Adapter_Factory_Impl.cpp b/TAO/tao/ObjRefTemplate/ObjectReferenceTemplate_Adapter_Factory_Impl.cpp index 5f49f89435d..7cb8901339b 100644 --- a/TAO/tao/ObjRefTemplate/ObjectReferenceTemplate_Adapter_Factory_Impl.cpp +++ b/TAO/tao/ObjRefTemplate/ObjectReferenceTemplate_Adapter_Factory_Impl.cpp @@ -14,17 +14,26 @@ TAO_ObjectReferenceTemplate_Adapter_Factory_Impl::~TAO_ObjectReferenceTemplate_A TAO_ObjectReferenceTemplate_Adapter * TAO_ObjectReferenceTemplate_Adapter_Factory_Impl::create ( - ACE_ENV_SINGLE_ARG_DECL_NOT_USED - ) + ACE_ENV_SINGLE_ARG_DECL) ACE_THROW_SPEC ((CORBA::SystemException)) { TAO_ObjectReferenceTemplate_Adapter_Impl * new_objectreferencetemplate_adapter; - ACE_NEW_RETURN (new_objectreferencetemplate_adapter, - TAO_ObjectReferenceTemplate_Adapter_Impl, - 0); + ACE_NEW_THROW_EX (new_objectreferencetemplate_adapter, + TAO_ObjectReferenceTemplate_Adapter_Impl, + CORBA::NO_MEMORY ()); + ACE_CHECK_RETURN (0); + return new_objectreferencetemplate_adapter; } +void +TAO_ObjectReferenceTemplate_Adapter_Factory_Impl::destroy ( + TAO_ObjectReferenceTemplate_Adapter * adapter + ACE_ENV_SINGLE_ARG_DECL_NOT_USED) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + delete adapter; +} // ********************************************************************* diff --git a/TAO/tao/ObjRefTemplate/ObjectReferenceTemplate_Adapter_Factory_Impl.h b/TAO/tao/ObjRefTemplate/ObjectReferenceTemplate_Adapter_Factory_Impl.h index 536e48ea46e..b46f34fcb5a 100644 --- a/TAO/tao/ObjRefTemplate/ObjectReferenceTemplate_Adapter_Factory_Impl.h +++ b/TAO/tao/ObjRefTemplate/ObjectReferenceTemplate_Adapter_Factory_Impl.h @@ -44,6 +44,11 @@ public: ) ACE_THROW_SPEC ((CORBA::SystemException)); + virtual void destroy ( + TAO_ObjectReferenceTemplate_Adapter * adapter + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)); + // Used to force the initialization of the code. static int Initializer (void); }; diff --git a/TAO/tao/ObjRefTemplate/ObjectReferenceTemplate_Adapter_Impl.cpp b/TAO/tao/ObjRefTemplate/ObjectReferenceTemplate_Adapter_Impl.cpp index 94ead2c1570..9343d39138a 100644 --- a/TAO/tao/ObjRefTemplate/ObjectReferenceTemplate_Adapter_Impl.cpp +++ b/TAO/tao/ObjRefTemplate/ObjectReferenceTemplate_Adapter_Impl.cpp @@ -4,7 +4,7 @@ #include "tao/CORBA_String.h" #include "tao/ORB_Constants.h" - +#include "tao/CORBA_methods.h" ACE_RCSID (ORT, ObjectReferenceTemplate_Adapater_Impl, @@ -17,16 +17,6 @@ ACE_RCSID (ORT, TAO_ObjectReferenceTemplate_Adapter_Impl::TAO_ObjectReferenceTemplate_Adapter_Impl() -{} - -TAO_ObjectReferenceTemplate_Adapter_Impl::TAO_ObjectReferenceTemplate_Adapter_Impl ( - const char *server_id, - const char *orb_id, - PortableInterceptor::AdapterName *adapter_name, - TAO_POA * poa) - : server_id_ (server_id), - orb_id_ (orb_id), - poa_ (poa) { } @@ -35,91 +25,92 @@ TAO_ObjectReferenceTemplate_Adapter_Impl::~TAO_ObjectReferenceTemplate_Adapter_I } char * -TAO_ObjectReferenceTemplate_Adapter_Impl::server_id (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) +TAO_ObjectReferenceTemplate_Adapter_Impl::server_id (ACE_ENV_SINGLE_ARG_DECL) ACE_THROW_SPEC ((CORBA::SystemException)) { - return CORBA::string_dup (this->server_id_); + return this->ort_template_->server_id (ACE_ENV_SINGLE_ARG_PARAMETER); } char * -TAO_ObjectReferenceTemplate_Adapter_Impl::orb_id (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) +TAO_ObjectReferenceTemplate_Adapter_Impl::orb_id (ACE_ENV_SINGLE_ARG_DECL) ACE_THROW_SPEC ((CORBA::SystemException)) { - return CORBA::string_dup (this->orb_id_); + return this->ort_template_->orb_id (ACE_ENV_SINGLE_ARG_PARAMETER); } PortableInterceptor::AdapterName * TAO_ObjectReferenceTemplate_Adapter_Impl::adapter_name (ACE_ENV_SINGLE_ARG_DECL) ACE_THROW_SPEC ((CORBA::SystemException)) { - PortableInterceptor::AdapterName *adapter_name; - ACE_NEW_THROW_EX (adapter_name, - PortableInterceptor::AdapterName ( - *(this->adapter_name_)), - CORBA::NO_MEMORY ( - CORBA::SystemException::_tao_minor_code ( - TAO_DEFAULT_MINOR_CODE, - ENOMEM), - CORBA::COMPLETED_NO)); - ACE_CHECK_RETURN (0); - - return adapter_name; + return this->ort_template_->adapter_name (ACE_ENV_SINGLE_ARG_PARAMETER); } CORBA::Object_ptr TAO_ObjectReferenceTemplate_Adapter_Impl::make_object ( - const char *, - const PortableInterceptor::ObjectId & + const char *repository_id, + const PortableInterceptor::ObjectId &id ACE_ENV_ARG_DECL) ACE_THROW_SPEC (( CORBA::SystemException )) { - if (this->poa_ == 0) - ACE_THROW_RETURN (CORBA::BAD_INV_ORDER (), CORBA::Object::_nil ()); - - return this->poa_->invoke_key_to_object (ACE_ENV_SINGLE_ARG_PARAMETER); -} - -int -TAO_ObjectReferenceTemplate_Adapter_Impl::destroy (void) -{ -// delete this; - return 0; + return this->ort_factory_->make_object (repository_id, + id + ACE_ENV_ARG_PARAMETER); } PortableInterceptor::ObjectReferenceTemplate * TAO_ObjectReferenceTemplate_Adapter_Impl::get_adapter_template (void) { - this->_add_ref(); - return this; + CORBA::add_ref (ort_template_); + + return ort_template_; } PortableInterceptor::ObjectReferenceFactory * TAO_ObjectReferenceTemplate_Adapter_Impl::get_obj_ref_factory (void) { - this->_add_ref(); - return this; + CORBA::add_ref (ort_factory_); + + return ort_factory_; } int -TAO_ObjectReferenceTemplate_Adapter_Impl::activate (PortableInterceptor::ObjectReferenceFactory *current_factory, - TAO_POA *poa) +TAO_ObjectReferenceTemplate_Adapter_Impl::set_obj_ref_factory ( + PortableInterceptor::ObjectReferenceFactory *current_factory + ACE_ENV_ARG_DECL) { - poa_ = poa; + ort_factory_ = current_factory; + + CORBA::add_ref (ort_factory_); + return 0; } int -TAO_ObjectReferenceTemplate_Adapter_Impl::activate (const char *server_id, - const char *orb_id, - PortableInterceptor::AdapterName *adapter_name, - TAO_POA *poa) +TAO_ObjectReferenceTemplate_Adapter_Impl::activate ( + const char *server_id, + const char *orb_id, + PortableInterceptor::AdapterName *adapter_name, + TAO_POA *poa + ACE_ENV_ARG_DECL) { - server_id_ = server_id; - orb_id_ = orb_id; - adapter_name_ = adapter_name; - poa_ = poa; + // Create an ObjectReferenceTemplate for this POA. + ACE_NEW_THROW_EX (this->tao_ort_template, + TAO_ObjectReferenceTemplate ( + server_id, + orb_id, + adapter_name, + poa), + CORBA::NO_MEMORY ()); + ACE_CHECK_RETURN (-1); + + this->ort_template_ = this->tao_ort_template; + + // Must increase ref count since this->obj_ref_factory_ will + // descrease it upon destruction. + CORBA::add_ref (this->ort_template_.in ()); + this->ort_factory_ = this->ort_template_; return 0; } @@ -127,5 +118,5 @@ TAO_ObjectReferenceTemplate_Adapter_Impl::activate (const char *server_id, void TAO_ObjectReferenceTemplate_Adapter_Impl::poa (TAO_POA * poa) { - poa_ = poa; + this->tao_ort_template->poa (poa); } diff --git a/TAO/tao/ObjRefTemplate/ObjectReferenceTemplate_Adapter_Impl.h b/TAO/tao/ObjRefTemplate/ObjectReferenceTemplate_Adapter_Impl.h index 77846aa8f8e..040f8d4871a 100644 --- a/TAO/tao/ObjRefTemplate/ObjectReferenceTemplate_Adapter_Impl.h +++ b/TAO/tao/ObjRefTemplate/ObjectReferenceTemplate_Adapter_Impl.h @@ -6,15 +6,14 @@ * * $Id$ * - * This is the implementation of the - * PortableInterceptor::ObjectReferenceTemplate ValueType. + * This is the implementation of the TAO_ObjectReferenceTemplate_Adapter * - * @author Priyanka Gontla <gontla_p@ociweb.com> + * @author Johnny Willemsen <jwillemsen@remedy.nl> */ //============================================================================= -#ifndef TAO_OBJECT_REFERENCE_TEMPLATE_I_H -#define TAO_OBJECT_REFERENCE_TEMPLATE_I_H +#ifndef TAO_OBJECT_REFERENCE_TEMPLATE_ADAPTER_IMPL_H +#define TAO_OBJECT_REFERENCE_TEMPLATE_ADAPTER_IMPL_H #include /**/ "ace/pre.h" @@ -25,7 +24,7 @@ #endif /* ACE_LACKS_PRAGMA_ONCE */ #include "tao/PortableServer/ObjectReferenceTemplate_Adapter.h" -#include "Default_ORTC.h" +#include "tao/ObjRefTemplate/ObjectReferenceTemplate_i.h" #if defined(_MSC_VER) #if (_MSC_VER >= 1200) @@ -43,28 +42,21 @@ class TAO_POA; * interface. */ class TAO_ORT_Export TAO_ObjectReferenceTemplate_Adapter_Impl - : public TAO_ObjectReferenceTemplate_Adapter, - public virtual OBV_TAO_Default_ORT::ObjectReferenceTemplate, - public virtual CORBA::DefaultValueRefCountBase + : public TAO_ObjectReferenceTemplate_Adapter { public: TAO_ObjectReferenceTemplate_Adapter_Impl(); - /// Constructor + /// Activate this adapter virtual int activate (const char *server_id, const char *orb_id, PortableInterceptor::AdapterName *adapter_name, - TAO_POA *poa); + TAO_POA *poa + ACE_ENV_ARG_DECL_WITH_DEFAULTS); - TAO_ObjectReferenceTemplate_Adapter_Impl (const char *server_id, - const char *orb_id, - PortableInterceptor::AdapterName *, - TAO_POA *poa); - - virtual int destroy (void); - - virtual int activate (PortableInterceptor::ObjectReferenceFactory *current_factory, - TAO_POA *poa); + /// Set a different ort_factory to be used. + virtual int set_obj_ref_factory (PortableInterceptor::ObjectReferenceFactory *current_factory + ACE_ENV_ARG_DECL_WITH_DEFAULTS); /** * @name PortableInterceptor::ObjectReferenceTemplate Methods @@ -127,11 +119,14 @@ protected: private: - const char *server_id_; - const char *orb_id_; - PortableInterceptor::AdapterName_var adapter_name_; - TAO_POA *poa_; + /// The ORT Template, this is the factory and its identify + PortableInterceptor::ObjectReferenceTemplate_var ort_template_; + + /// The ORT Factory + PortableInterceptor::ObjectReferenceFactory_var ort_factory_; + /// TAO specific ORT Template + TAO_ObjectReferenceTemplate* tao_ort_template; }; #if defined(_MSC_VER) && (_MSC_VER >= 1200) @@ -144,4 +139,4 @@ private: #include /**/ "ace/post.h" -#endif /* TAO_OBJECT_REFERENCE_TEMPLATE_I_H */ +#endif /* TAO_OBJECT_REFERENCE_TEMPLATE_ADAPTER_IMPL_H */ |