summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohnny Willemsen <jwillemsen@remedy.nl>2004-08-18 12:25:38 +0000
committerJohnny Willemsen <jwillemsen@remedy.nl>2004-08-18 12:25:38 +0000
commit8dac372c202b4872378a2e3f3c66c571c46a93fc (patch)
treeec8616a45b70aae0c1ffdf7dc85ac65a3e68abb0
parent778de22bf9f8a5744287894127c664b93c499a4e (diff)
downloadATCD-8dac372c202b4872378a2e3f3c66c571c46a93fc.tar.gz
ChangeLogTag: Wed Aug 18 10:14:12 UTC 2004 Johnny Willemsen <jwillemsen@remedy.nl>
-rw-r--r--TAO/tao/ObjRefTemplate/ObjectReferenceTemplate_Adapter_Factory_Impl.cpp19
-rw-r--r--TAO/tao/ObjRefTemplate/ObjectReferenceTemplate_Adapter_Factory_Impl.h5
-rw-r--r--TAO/tao/ObjRefTemplate/ObjectReferenceTemplate_Adapter_Impl.cpp103
-rw-r--r--TAO/tao/ObjRefTemplate/ObjectReferenceTemplate_Adapter_Impl.h45
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 */