summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbala <balanatarajan@users.noreply.github.com>2001-03-29 20:24:46 +0000
committerbala <balanatarajan@users.noreply.github.com>2001-03-29 20:24:46 +0000
commitb91198dc08fe643a8e0feb00cb03a83b05f3a602 (patch)
tree09a69f260d0ea697f61473b4b8029ce1bf5fe8c9
parentea964b2e8652455b3a9f4fd5d4fbdac7c0f1c059 (diff)
downloadATCD-b91198dc08fe643a8e0feb00cb03a83b05f3a602.tar.gz
*** empty log message ***
-rw-r--r--TAO/tao/BiDir_GIOP/BiDirGIOP.cpp61
-rw-r--r--TAO/tao/BiDir_GIOP/BiDirGIOP.cpp~59
-rw-r--r--TAO/tao/BiDir_GIOP/BiDirPolicyC.cpp139
-rw-r--r--TAO/tao/BiDir_GIOP/BiDirPolicyC.cpp~140
-rw-r--r--TAO/tao/BiDir_GIOP/BiDir_ORBInitializer.cpp70
-rw-r--r--TAO/tao/BiDir_GIOP/BiDir_ORBInitializer.cpp~71
-rw-r--r--TAO/tao/BiDir_GIOP/BiDir_PolicyFactory.cpp47
-rw-r--r--TAO/tao/BiDir_GIOP/BiDir_PolicyFactory.cpp~47
-rw-r--r--TAO/tao/BiDir_GIOP/BiDir_Policy_i.cpp80
-rw-r--r--TAO/tao/BiDir_GIOP/BiDir_Policy_i.cpp~80
10 files changed, 794 insertions, 0 deletions
diff --git a/TAO/tao/BiDir_GIOP/BiDirGIOP.cpp b/TAO/tao/BiDir_GIOP/BiDirGIOP.cpp
new file mode 100644
index 00000000000..c088d27909a
--- /dev/null
+++ b/TAO/tao/BiDir_GIOP/BiDirGIOP.cpp
@@ -0,0 +1,61 @@
+/* -*- C++ -*- */
+
+#include "BiDirGIOP.h"
+#include "BiDir_ORBInitializer.h"
+
+ACE_RCSID(BiDir_GIOP, BiDirGIOP, "$Id$")
+
+TAO_BiDirGIOP_Loader::TAO_BiDirGIOP_Loader (void)
+{
+}
+
+int
+TAO_BiDirGIOP_Loader::activate (CORBA::ORB_ptr,
+ int,
+ char *[],
+ CORBA::Environment &ACE_TRY_ENV)
+
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ if (TAO_DEF_GIOP_MINOR >= 2)
+ {
+ PortableInterceptor::ORBInitializer_ptr tmp_orb_initializer =
+ PortableInterceptor::ORBInitializer::_nil ();
+ PortableInterceptor::ORBInitializer_var bidir_orb_initializer;
+
+ /// Register the BiDir ORBInitializer.
+ ACE_NEW_THROW_EX (tmp_orb_initializer,
+ TAO_BiDir_ORBInitializer,
+ CORBA::NO_MEMORY (
+ CORBA_SystemException::_tao_minor_code (
+ TAO_DEFAULT_MINOR_CODE,
+ ENOMEM),
+ CORBA::COMPLETED_NO));
+ ACE_CHECK_RETURN (-1);
+
+ bidir_orb_initializer = tmp_orb_initializer;
+
+ PortableInterceptor::register_orb_initializer (bidir_orb_initializer.in (),
+ ACE_TRY_ENV);
+ ACE_CHECK_RETURN (-1);
+ }
+
+ return 0;
+}
+
+int
+TAO_BiDirGIOP_Loader::Initializer (void)
+{
+ ACE_Service_Config::static_svcs ()->
+ insert (&ace_svc_desc_TAO_BiDirGIOP_Loader);
+
+ return 0;
+}
+
+ACE_STATIC_SVC_DEFINE (TAO_BiDirGIOP_Loader,
+ ACE_TEXT ("BiDirGIOP_Loader"),
+ ACE_SVC_OBJ_T,
+ &ACE_SVC_NAME (TAO_BiDirGIOP_Loader),
+ ACE_Service_Type::DELETE_THIS | ACE_Service_Type::DELETE_OBJ,
+ 0)
+ACE_FACTORY_DEFINE (TAO_BiDirGIOP, TAO_BiDirGIOP_Loader)
diff --git a/TAO/tao/BiDir_GIOP/BiDirGIOP.cpp~ b/TAO/tao/BiDir_GIOP/BiDirGIOP.cpp~
new file mode 100644
index 00000000000..cf82c7b15f5
--- /dev/null
+++ b/TAO/tao/BiDir_GIOP/BiDirGIOP.cpp~
@@ -0,0 +1,59 @@
+/* -*- C++ -*- */
+
+#include "BiDirGIOP.h"
+
+ACE_RCSID(BiDir_GIOP, BiDirGIOP, "$Id$")
+
+TAO_BiDirGIOP_Loader::TAO_BiDirGIOP_Loader (void)
+{
+}
+
+CORBA::Object_ptr
+TAO_BiDirGIOP_Loader::create_object (CORBA::ORB_ptr,
+ int,
+ char *[],
+ CORBA::Environment &)
+ ACE_THROW_SPEC (())
+{
+ if (TAO_DEF_GIOP_MINOR >= 2)
+ {
+ PortableInterceptor::ORBInitializer_ptr tmp_orb_initializer =
+ PortableInterceptor::ORBInitializer::_nil ();
+ PortableInterceptor::ORBInitializer_var bidir_orb_initializer;
+
+ /// Register the BiDir ORBInitializer.
+ ACE_NEW_THROW_EX (tmp_orb_initializer,
+ TAO_BiDir_ORBInitializer,
+ CORBA::NO_MEMORY (
+ CORBA_SystemException::_tao_minor_code (
+ TAO_DEFAULT_MINOR_CODE,
+ ENOMEM),
+ CORBA::COMPLETED_NO));
+ ACE_CHECK;
+
+ bidir_orb_initializer = tmp_orb_initializer;
+
+ PortableInterceptor::register_orb_initializer (bidir_orb_initializer.in (),
+ ACE_TRY_ENV);
+ ACE_CHECK;
+ }
+
+ return 0;
+}
+
+int
+TAO_BiDirGIOP_Loader::Initializer (void)
+{
+ ACE_Service_Config::static_svcs ()->
+ insert (&ace_svc_desc_TAO_BiDirGIOP_Loader);
+
+ return 0;
+}
+
+ACE_STATIC_SVC_DEFINE (TAO_BiDirGIOP_Loader,
+ ACE_TEXT ("BiDirGIOP_Loader"),
+ ACE_SVC_OBJ_T,
+ &ACE_SVC_NAME (TAO_BiDirGIOP_Loader),
+ ACE_Service_Type::DELETE_THIS | ACE_Service_Type::DELETE_OBJ,
+ 0)
+ACE_FACTORY_DEFINE (TAO_BiDirGIOP, TAO_BiDirGIOP_Loader)
diff --git a/TAO/tao/BiDir_GIOP/BiDirPolicyC.cpp b/TAO/tao/BiDir_GIOP/BiDirPolicyC.cpp
new file mode 100644
index 00000000000..4075be00a36
--- /dev/null
+++ b/TAO/tao/BiDir_GIOP/BiDirPolicyC.cpp
@@ -0,0 +1,139 @@
+// -*- C++ -*-
+//
+// $Id$
+
+// **** Code generated by the The ACE ORB (TAO) IDL Compiler ****
+// TAO and the TAO IDL Compiler have been developed by:
+// Center for Distributed Object Computing
+// Washington University
+// St. Louis, MO
+// USA
+// http://www.cs.wustl.edu/~schmidt/doc-center.html
+// and
+// Distributed Object Computing Laboratory
+// University of California at Irvine
+// Irvine, CA
+// USA
+// http://doc.ece.uci.edu/
+//
+// Information about TAO is available at:
+// http://www.cs.wustl.edu/~schmidt/TAO.html
+
+#include "BiDirGIOP.h"
+
+#if !defined (__ACE_INLINE__)
+#include "BiDirPolicyC.i"
+#endif /* !defined INLINE */
+
+static const CORBA::Long _oc_BiDirPolicy_BidirectionalPolicyValue[] =
+{
+ TAO_ENCAP_BYTE_ORDER, // byte order
+ 45, ACE_NTOHL (0x49444c3a), ACE_NTOHL (0x42694469), ACE_NTOHL (0x72506f6c), ACE_NTOHL (0x6963792f), ACE_NTOHL (0x42696469), ACE_NTOHL (0x72656374), ACE_NTOHL (0x696f6e61), ACE_NTOHL (0x6c506f6c), ACE_NTOHL (0x69637956), ACE_NTOHL (0x616c7565), ACE_NTOHL (0x3a312e30), ACE_NTOHL (0x0), // repository ID = IDL:BiDirPolicy/BidirectionalPolicyValue:1.0
+ 25, ACE_NTOHL (0x42696469), ACE_NTOHL (0x72656374), ACE_NTOHL (0x696f6e61), ACE_NTOHL (0x6c506f6c), ACE_NTOHL (0x69637956), ACE_NTOHL (0x616c7565), ACE_NTOHL (0x0), // name = BidirectionalPolicyValue
+ CORBA::tk_ushort,
+
+};
+static CORBA::TypeCode _tc_TAO_tc_BiDirPolicy_BidirectionalPolicyValue (CORBA::tk_alias, sizeof (_oc_BiDirPolicy_BidirectionalPolicyValue), (char *) &_oc_BiDirPolicy_BidirectionalPolicyValue, 0, sizeof (BiDirPolicy::BidirectionalPolicyValue));
+TAO_NAMESPACE_TYPE (CORBA::TypeCode_ptr)
+TAO_NAMESPACE_BEGIN (BiDirPolicy)
+TAO_NAMESPACE_DEFINE (CORBA::TypeCode_ptr, _tc_BidirectionalPolicyValue, &_tc_TAO_tc_BiDirPolicy_BidirectionalPolicyValue)
+TAO_NAMESPACE_END
+TAO_NAMESPACE_TYPE (const CORBA::UShort)
+TAO_NAMESPACE_BEGIN (BiDirPolicy)
+TAO_NAMESPACE_DEFINE (const CORBA::UShort, NORMAL, 0U)
+TAO_NAMESPACE_END
+TAO_NAMESPACE_TYPE (const CORBA::UShort)
+TAO_NAMESPACE_BEGIN (BiDirPolicy)
+TAO_NAMESPACE_DEFINE (const CORBA::UShort, BOTH, 1U)
+TAO_NAMESPACE_END
+TAO_NAMESPACE_TYPE (const CORBA::ULong)
+TAO_NAMESPACE_BEGIN (BiDirPolicy)
+TAO_NAMESPACE_DEFINE (const CORBA::ULong, BIDIRECTIONAL_POLICY_TYPE, 37U)
+TAO_NAMESPACE_END
+
+// default constructor
+BiDirPolicy::BidirectionalPolicy::BidirectionalPolicy ()
+{
+ }
+
+// destructor
+BiDirPolicy::BidirectionalPolicy::~BidirectionalPolicy (void)
+{}
+
+BiDirPolicy::BidirectionalPolicy_ptr BiDirPolicy::BidirectionalPolicy::_narrow (
+ CORBA::Object_ptr obj,
+ CORBA::Environment &ACE_TRY_ENV
+ )
+{
+ return BidirectionalPolicy::_unchecked_narrow (obj, ACE_TRY_ENV);
+}
+
+BiDirPolicy::BidirectionalPolicy_ptr BiDirPolicy::BidirectionalPolicy::_unchecked_narrow (
+ CORBA::Object_ptr obj,
+ CORBA::Environment &
+ )
+{
+ if (CORBA::is_nil (obj))
+ return BidirectionalPolicy::_nil ();
+ return
+ ACE_reinterpret_cast
+ (
+ BidirectionalPolicy_ptr,
+ obj->_tao_QueryInterface
+ (
+ ACE_reinterpret_cast
+ (
+ ptr_arith_t,
+ &BidirectionalPolicy::_narrow
+ )
+ )
+ );
+}
+
+BiDirPolicy::BidirectionalPolicy_ptr
+BiDirPolicy::BidirectionalPolicy::_duplicate (BidirectionalPolicy_ptr obj)
+{
+ if (!CORBA::is_nil (obj))
+ obj->_add_ref ();
+ return obj;
+}
+
+void *BiDirPolicy::BidirectionalPolicy::_tao_QueryInterface (ptr_arith_t type)
+{
+ void *retv = 0;
+ if (type == ACE_reinterpret_cast
+ (ptr_arith_t,
+ &ACE_NESTED_CLASS (::BiDirPolicy, BidirectionalPolicy)::_narrow))
+ retv = ACE_reinterpret_cast (void*, this);
+ else if (type == ACE_reinterpret_cast
+ (ptr_arith_t,
+ &::CORBA::Policy::_narrow))
+ retv = ACE_reinterpret_cast
+ (
+ void *,
+ ACE_static_cast
+ (
+ CORBA::Policy_ptr,
+ this
+ )
+ );
+ else if (type == ACE_reinterpret_cast (ptr_arith_t, &CORBA::Object::_narrow))
+ retv = ACE_reinterpret_cast (void *,
+ ACE_static_cast (CORBA::Object_ptr, this));
+
+ if (retv)
+ this->_add_ref ();
+ return retv;
+}
+
+const char* BiDirPolicy::BidirectionalPolicy::_interface_repository_id (void) const
+{
+ return "IDL:BiDirPolicy/BidirectionalPolicy:1.0";
+}
+
+#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) || \
+ defined (ACE_HAS_GNU_REPO)
+ template class TAO_Object_Manager<BiDirPolicy::BidirectionalPolicy,BiDirPolicy::BidirectionalPolicy_var>;
+ #elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
+ # pragma instantiate TAO_Object_Manager<BiDirPolicy::BidirectionalPolicy,BiDirPolicy::BidirectionalPolicy_var>
+#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/TAO/tao/BiDir_GIOP/BiDirPolicyC.cpp~ b/TAO/tao/BiDir_GIOP/BiDirPolicyC.cpp~
new file mode 100644
index 00000000000..0ad66a3c920
--- /dev/null
+++ b/TAO/tao/BiDir_GIOP/BiDirPolicyC.cpp~
@@ -0,0 +1,140 @@
+// -*- C++ -*-
+//
+// $Id$
+
+// **** Code generated by the The ACE ORB (TAO) IDL Compiler ****
+// TAO and the TAO IDL Compiler have been developed by:
+// Center for Distributed Object Computing
+// Washington University
+// St. Louis, MO
+// USA
+// http://www.cs.wustl.edu/~schmidt/doc-center.html
+// and
+// Distributed Object Computing Laboratory
+// University of California at Irvine
+// Irvine, CA
+// USA
+// http://doc.ece.uci.edu/
+//
+// Information about TAO is available at:
+// http://www.cs.wustl.edu/~schmidt/TAO.html
+
+#include "BiDirPolicyC.h"
+
+#if !defined (__ACE_INLINE__)
+#include "BiDirPolicyC.i"
+#endif /* !defined INLINE */
+
+static const CORBA::Long _oc_BiDirPolicy_BidirectionalPolicyValue[] =
+{
+ TAO_ENCAP_BYTE_ORDER, // byte order
+ 45, ACE_NTOHL (0x49444c3a), ACE_NTOHL (0x42694469), ACE_NTOHL (0x72506f6c), ACE_NTOHL (0x6963792f), ACE_NTOHL (0x42696469), ACE_NTOHL (0x72656374), ACE_NTOHL (0x696f6e61), ACE_NTOHL (0x6c506f6c), ACE_NTOHL (0x69637956), ACE_NTOHL (0x616c7565), ACE_NTOHL (0x3a312e30), ACE_NTOHL (0x0), // repository ID = IDL:BiDirPolicy/BidirectionalPolicyValue:1.0
+ 25, ACE_NTOHL (0x42696469), ACE_NTOHL (0x72656374), ACE_NTOHL (0x696f6e61), ACE_NTOHL (0x6c506f6c), ACE_NTOHL (0x69637956), ACE_NTOHL (0x616c7565), ACE_NTOHL (0x0), // name = BidirectionalPolicyValue
+ CORBA::tk_ushort,
+
+};
+static CORBA::TypeCode _tc_TAO_tc_BiDirPolicy_BidirectionalPolicyValue (CORBA::tk_alias, sizeof (_oc_BiDirPolicy_BidirectionalPolicyValue), (char *) &_oc_BiDirPolicy_BidirectionalPolicyValue, 0, sizeof (BiDirPolicy::BidirectionalPolicyValue));
+TAO_NAMESPACE_TYPE (CORBA::TypeCode_ptr)
+TAO_NAMESPACE_BEGIN (BiDirPolicy)
+TAO_NAMESPACE_DEFINE (CORBA::TypeCode_ptr, _tc_BidirectionalPolicyValue, &_tc_TAO_tc_BiDirPolicy_BidirectionalPolicyValue)
+TAO_NAMESPACE_END
+TAO_NAMESPACE_TYPE (const CORBA::UShort)
+TAO_NAMESPACE_BEGIN (BiDirPolicy)
+TAO_NAMESPACE_DEFINE (const CORBA::UShort, NORMAL, 0U)
+TAO_NAMESPACE_END
+TAO_NAMESPACE_TYPE (const CORBA::UShort)
+TAO_NAMESPACE_BEGIN (BiDirPolicy)
+TAO_NAMESPACE_DEFINE (const CORBA::UShort, BOTH, 1U)
+TAO_NAMESPACE_END
+TAO_NAMESPACE_TYPE (const CORBA::ULong)
+TAO_NAMESPACE_BEGIN (BiDirPolicy)
+TAO_NAMESPACE_DEFINE (const CORBA::ULong, BIDIRECTIONAL_POLICY_TYPE, 37U)
+TAO_NAMESPACE_END
+
+// default constructor
+BiDirPolicy::BidirectionalPolicy::BidirectionalPolicy ()
+{
+ }
+
+// destructor
+BiDirPolicy::BidirectionalPolicy::~BidirectionalPolicy (void)
+{}
+
+BiDirPolicy::BidirectionalPolicy_ptr BiDirPolicy::BidirectionalPolicy::_narrow (
+ CORBA::Object_ptr obj,
+ CORBA::Environment &ACE_TRY_ENV
+ )
+{
+ return BidirectionalPolicy::_unchecked_narrow (obj, ACE_TRY_ENV);
+}
+
+BiDirPolicy::BidirectionalPolicy_ptr BiDirPolicy::BidirectionalPolicy::_unchecked_narrow (
+ CORBA::Object_ptr obj,
+ CORBA::Environment &
+ )
+{
+ if (CORBA::is_nil (obj))
+ return BidirectionalPolicy::_nil ();
+ return
+ ACE_reinterpret_cast
+ (
+ BidirectionalPolicy_ptr,
+ obj->_tao_QueryInterface
+ (
+ ACE_reinterpret_cast
+ (
+ ptr_arith_t,
+ &BidirectionalPolicy::_narrow
+ )
+ )
+ );
+}
+
+BiDirPolicy::BidirectionalPolicy_ptr
+BiDirPolicy::BidirectionalPolicy::_duplicate (BidirectionalPolicy_ptr obj)
+{
+ if (!CORBA::is_nil (obj))
+ obj->_add_ref ();
+ return obj;
+}
+
+void *BiDirPolicy::BidirectionalPolicy::_tao_QueryInterface (ptr_arith_t type)
+{
+ void *retv = 0;
+ if (type == ACE_reinterpret_cast
+ (ptr_arith_t,
+ &ACE_NESTED_CLASS (::BiDirPolicy, BidirectionalPolicy)::_narrow))
+ retv = ACE_reinterpret_cast (void*, this);
+ else if (type == ACE_reinterpret_cast
+ (ptr_arith_t,
+ &::CORBA::Policy::_narrow))
+ retv = ACE_reinterpret_cast
+ (
+ void *,
+ ACE_static_cast
+ (
+ CORBA::Policy_ptr,
+ this
+ )
+ );
+ else if (type == ACE_reinterpret_cast (ptr_arith_t, &CORBA::Object::_narrow))
+ retv = ACE_reinterpret_cast (void *,
+ ACE_static_cast (CORBA::Object_ptr, this));
+
+ if (retv)
+ this->_add_ref ();
+ return retv;
+}
+
+const char* BiDirPolicy::BidirectionalPolicy::_interface_repository_id (void) const
+{
+ return "IDL:BiDirPolicy/BidirectionalPolicy:1.0";
+}
+
+#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) || \
+ defined (ACE_HAS_GNU_REPO)
+ template class TAO_Object_Manager<BiDirPolicy::BidirectionalPolicy,BiDirPolicy::BidirectionalPolicy_var>;
+ #elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
+ # pragma instantiate TAO_Object_Manager<BiDirPolicy::BidirectionalPolicy,BiDirPolicy::BidirectionalPolicy_var>
+#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
+
diff --git a/TAO/tao/BiDir_GIOP/BiDir_ORBInitializer.cpp b/TAO/tao/BiDir_GIOP/BiDir_ORBInitializer.cpp
new file mode 100644
index 00000000000..47cc91ac035
--- /dev/null
+++ b/TAO/tao/BiDir_GIOP/BiDir_ORBInitializer.cpp
@@ -0,0 +1,70 @@
+// -*- C++ -*-
+//
+// $Id$
+
+#include "BiDir_ORBInitializer.h"
+#include "BiDir_PolicyFactory.h"
+#include "BiDirGIOP.h"
+
+ACE_RCSID (BiDir_GIOP, BiDir_ORBInitializer, "$Id$")
+
+
+
+
+void
+TAO_BiDir_ORBInitializer::pre_init (
+ PortableInterceptor::ORBInitInfo_ptr
+ TAO_ENV_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ //
+}
+
+void
+TAO_BiDir_ORBInitializer::post_init (
+ PortableInterceptor::ORBInitInfo_ptr info
+ TAO_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ this->register_policy_factories (info
+ TAO_ENV_ARG_PARAMETER);
+ ACE_CHECK;
+}
+
+void
+TAO_BiDir_ORBInitializer::register_policy_factories (
+ PortableInterceptor::ORBInitInfo_ptr info
+ TAO_ENV_ARG_DECL)
+{
+ /// Register the BiDir policy factories.
+ PortableInterceptor::PolicyFactory_ptr temp_factory =
+ PortableInterceptor::PolicyFactory::_nil ();
+ PortableInterceptor::PolicyFactory_var policy_factory;
+
+ TAO_ENV_ARG_DEFN;
+
+ /// This policy factory is used for all BiDir related policies.
+ ACE_NEW_THROW_EX (temp_factory,
+ TAO_BiDir_PolicyFactory,
+ CORBA::NO_MEMORY (
+ CORBA::SystemException::_tao_minor_code (
+ TAO_DEFAULT_MINOR_CODE,
+ ENOMEM),
+ CORBA::COMPLETED_NO));
+ ACE_CHECK;
+
+ policy_factory = temp_factory;
+
+ /// Bind the same policy factory to all BiDir related policy
+ /// types since a single policy factory is used to create each of
+ /// the different types of BiDir policies.
+
+ CORBA::PolicyType type;
+
+ type = BiDirPolicy::BIDIRECTIONAL_POLICY_TYPE;
+ info->register_policy_factory (type,
+ policy_factory.in ()
+ TAO_ENV_ARG_PARAMETER);
+ ACE_CHECK;
+
+}
diff --git a/TAO/tao/BiDir_GIOP/BiDir_ORBInitializer.cpp~ b/TAO/tao/BiDir_GIOP/BiDir_ORBInitializer.cpp~
new file mode 100644
index 00000000000..5a25ad8ba15
--- /dev/null
+++ b/TAO/tao/BiDir_GIOP/BiDir_ORBInitializer.cpp~
@@ -0,0 +1,71 @@
+// -*- C++ -*-
+//
+// $Id$
+
+#include "BiDir_ORBInitializer.h"
+#include "BiDir_PolicyFactory.h"
+#include "BiDirGIOP.h"
+#include "tao/ORB_Core.h"
+
+ACE_RCSID (BiDir_GIOP, BiDir_ORBInitializer, "$Id$")
+
+
+
+
+void
+TAO_BiDir_ORBInitializer::pre_init (
+ PortableInterceptor::ORBInitInfo_ptr
+ TAO_ENV_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ //
+}
+
+void
+TAO_BiDir_ORBInitializer::post_init (
+ PortableInterceptor::ORBInitInfo_ptr info
+ TAO_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ this->register_policy_factories (info
+ TAO_ENV_ARG_PARAMETER);
+ ACE_CHECK;
+}
+
+void
+TAO_BiDir_ORBInitializer::register_policy_factories (
+ PortableInterceptor::ORBInitInfo_ptr info
+ TAO_ENV_ARG_DECL)
+{
+ /// Register the BiDir policy factories.
+ PortableInterceptor::PolicyFactory_ptr temp_factory =
+ PortableInterceptor::PolicyFactory::_nil ();
+ PortableInterceptor::PolicyFactory_var policy_factory;
+
+ TAO_ENV_ARG_DEFN;
+
+ /// This policy factory is used for all BiDir related policies.
+ ACE_NEW_THROW_EX (temp_factory,
+ TAO_BiDir_PolicyFactory,
+ CORBA::NO_MEMORY (
+ CORBA::SystemException::_tao_minor_code (
+ TAO_DEFAULT_MINOR_CODE,
+ ENOMEM),
+ CORBA::COMPLETED_NO));
+ ACE_CHECK;
+
+ policy_factory = temp_factory;
+
+ /// Bind the same policy factory to all BiDir related policy
+ /// types since a single policy factory is used to create each of
+ /// the different types of BiDir policies.
+
+ CORBA::PolicyType type;
+
+ type = BiDirPolicy::BIDIRECTIONAL_POLICY_TYPE;
+ info->register_policy_factory (type,
+ policy_factory.in ()
+ TAO_ENV_ARG_PARAMETER);
+ ACE_CHECK;
+
+}
diff --git a/TAO/tao/BiDir_GIOP/BiDir_PolicyFactory.cpp b/TAO/tao/BiDir_GIOP/BiDir_PolicyFactory.cpp
new file mode 100644
index 00000000000..1051005aefe
--- /dev/null
+++ b/TAO/tao/BiDir_GIOP/BiDir_PolicyFactory.cpp
@@ -0,0 +1,47 @@
+// -*- C++ -*-
+//
+// $Id$
+
+#include "BiDir_PolicyFactory.h"
+#include "BiDirGIOP.h"
+#include "BiDir_Policy_i.h"
+
+ACE_RCSID (BiDir_GIOP, BiDir_PolicyFactory, "$Id$")
+
+
+
+
+CORBA::Policy_ptr
+TAO_BiDir_PolicyFactory::create_policy (
+ CORBA::PolicyType type,
+ const CORBA::Any &value
+ TAO_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ CORBA::PolicyError))
+{
+ CORBA::Policy_ptr policy = CORBA::Policy::_nil ();
+
+ TAO_ENV_ARG_DEFN;
+
+ if (type == BiDirPolicy::BIDIRECTIONAL_POLICY_TYPE)
+ {
+ BiDirPolicy::BidirectionalPolicyValue val;
+
+ // Extract the value from the any
+ value >>= val;
+
+ ACE_NEW_THROW_EX (policy,
+ TAO_BidirectionalPolicy (val),
+ CORBA::NO_MEMORY (
+ CORBA_SystemException::_tao_minor_code (
+ TAO_DEFAULT_MINOR_CODE,
+ ENOMEM),
+ CORBA::COMPLETED_NO));
+ ACE_CHECK_RETURN (CORBA::Policy::_nil ());
+
+ return policy;
+ }
+
+ ACE_THROW_RETURN (CORBA::PolicyError (CORBA::BAD_POLICY_TYPE),
+ CORBA::Policy::_nil ());
+}
diff --git a/TAO/tao/BiDir_GIOP/BiDir_PolicyFactory.cpp~ b/TAO/tao/BiDir_GIOP/BiDir_PolicyFactory.cpp~
new file mode 100644
index 00000000000..25ee6789058
--- /dev/null
+++ b/TAO/tao/BiDir_GIOP/BiDir_PolicyFactory.cpp~
@@ -0,0 +1,47 @@
+// -*- C++ -*-
+//
+// $Id$
+
+#include "tao/BiDir_PolicyFactory.h"
+#include "tao/BiDirPolicyC.h"
+#include "tao/BiDir_Policy_i.h"
+
+ACE_RCSID (tao, BiDir_PolicyFactory, "$Id$")
+
+
+
+
+CORBA::Policy_ptr
+TAO_BiDir_PolicyFactory::create_policy (
+ CORBA::PolicyType type,
+ const CORBA::Any &value
+ TAO_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ CORBA::PolicyError))
+{
+ CORBA::Policy_ptr policy = CORBA::Policy::_nil ();
+
+ TAO_ENV_ARG_DEFN;
+
+ if (type == BiDirPolicy::BIDIRECTIONAL_POLICY_TYPE)
+ {
+ BiDirPolicy::BidirectionalPolicyValue val;
+
+ // Extract the value from the any
+ value >>= val;
+
+ ACE_NEW_THROW_EX (policy,
+ TAO_BidirectionalPolicy (val),
+ CORBA::NO_MEMORY (
+ CORBA_SystemException::_tao_minor_code (
+ TAO_DEFAULT_MINOR_CODE,
+ ENOMEM),
+ CORBA::COMPLETED_NO));
+ ACE_CHECK_RETURN (CORBA::Policy::_nil ());
+
+ return policy;
+ }
+
+ ACE_THROW_RETURN (CORBA::PolicyError (CORBA::BAD_POLICY_TYPE),
+ CORBA::Policy::_nil ());
+}
diff --git a/TAO/tao/BiDir_GIOP/BiDir_Policy_i.cpp b/TAO/tao/BiDir_GIOP/BiDir_Policy_i.cpp
new file mode 100644
index 00000000000..ebb928e17f8
--- /dev/null
+++ b/TAO/tao/BiDir_GIOP/BiDir_Policy_i.cpp
@@ -0,0 +1,80 @@
+// $Id$
+
+#include "BiDir_Policy_i.h"
+#include "tao/Stub.h"
+#include "tao/debug.h"
+
+ACE_RCSID(TAO, BiDir_Policy_i, "$Id$")
+
+
+
+#if ! defined (__ACE_INLINE__)
+#include "tao/BiDir_Policy_i.inl"
+#endif /* __ACE_INLINE__ */
+
+TAO_BidirectionalPolicy::TAO_BidirectionalPolicy (
+ const BiDirPolicy::BidirectionalPolicyValue val)
+ : value_ (val)
+{
+}
+
+TAO_BidirectionalPolicy::TAO_BidirectionalPolicy (const TAO_BidirectionalPolicy &rhs)
+ : BiDirPolicy::BidirectionalPolicy (),
+ TAO_Local_RefCounted_Object (),
+ value_ (rhs.value_)
+{
+}
+
+
+
+CORBA::PolicyType
+TAO_BidirectionalPolicy::policy_type (CORBA_Environment &)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ // Future policy implementors: notice how this minimizes the
+ // footprint of the class.
+ return BiDirPolicy::BIDIRECTIONAL_POLICY_TYPE;
+}
+
+
+TAO_BidirectionalPolicy *
+TAO_BidirectionalPolicy::clone (void) const
+{
+ TAO_BidirectionalPolicy *copy = 0;
+ ACE_NEW_RETURN (copy,
+ TAO_BidirectionalPolicy (*this),
+ 0);
+ return copy;
+}
+
+CORBA::Policy_ptr
+TAO_BidirectionalPolicy::copy (CORBA_Environment &ACE_TRY_ENV)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ // Future policy implementors: notice how the following code is
+ // exception safe!
+
+ TAO_BidirectionalPolicy* tmp;
+ ACE_NEW_THROW_EX (tmp, TAO_BidirectionalPolicy (*this),
+ CORBA::NO_MEMORY (TAO_DEFAULT_MINOR_CODE,
+ CORBA::COMPLETED_NO));
+ ACE_CHECK_RETURN (CORBA::Policy::_nil ());
+
+ return tmp;
+}
+
+void
+TAO_BidirectionalPolicy::destroy (CORBA_Environment &)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+}
+
+
+BiDirPolicy::BidirectionalPolicyValue
+TAO_BidirectionalPolicy::value (
+ CORBA::Environment &)
+ ACE_THROW_SPEC ((
+ CORBA::SystemException))
+{
+ return this->value_;
+}
diff --git a/TAO/tao/BiDir_GIOP/BiDir_Policy_i.cpp~ b/TAO/tao/BiDir_GIOP/BiDir_Policy_i.cpp~
new file mode 100644
index 00000000000..f34cde79b85
--- /dev/null
+++ b/TAO/tao/BiDir_GIOP/BiDir_Policy_i.cpp~
@@ -0,0 +1,80 @@
+// $Id$
+
+#include "tao/BiDir_Policy_i.h"
+#include "tao/Stub.h"
+#include "tao/debug.h"
+
+ACE_RCSID(TAO, BiDir_Policy_i, "$Id$")
+
+
+
+#if ! defined (__ACE_INLINE__)
+#include "tao/BiDir_Policy_i.inl"
+#endif /* __ACE_INLINE__ */
+
+TAO_BidirectionalPolicy::TAO_BidirectionalPolicy (
+ const BiDirPolicy::BidirectionalPolicyValue val)
+ : value_ (val)
+{
+}
+
+TAO_BidirectionalPolicy::TAO_BidirectionalPolicy (const TAO_BidirectionalPolicy &rhs)
+ : BiDirPolicy::BidirectionalPolicy (),
+ TAO_Local_RefCounted_Object (),
+ value_ (rhs.value_)
+{
+}
+
+
+
+CORBA::PolicyType
+TAO_BidirectionalPolicy::policy_type (CORBA_Environment &)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ // Future policy implementors: notice how this minimizes the
+ // footprint of the class.
+ return BiDirPolicy::BIDIRECTIONAL_POLICY_TYPE;
+}
+
+
+TAO_BidirectionalPolicy *
+TAO_BidirectionalPolicy::clone (void) const
+{
+ TAO_BidirectionalPolicy *copy = 0;
+ ACE_NEW_RETURN (copy,
+ TAO_BidirectionalPolicy (*this),
+ 0);
+ return copy;
+}
+
+CORBA::Policy_ptr
+TAO_BidirectionalPolicy::copy (CORBA_Environment &ACE_TRY_ENV)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ // Future policy implementors: notice how the following code is
+ // exception safe!
+
+ TAO_BidirectionalPolicy* tmp;
+ ACE_NEW_THROW_EX (tmp, TAO_BidirectionalPolicy (*this),
+ CORBA::NO_MEMORY (TAO_DEFAULT_MINOR_CODE,
+ CORBA::COMPLETED_NO));
+ ACE_CHECK_RETURN (CORBA::Policy::_nil ());
+
+ return tmp;
+}
+
+void
+TAO_BidirectionalPolicy::destroy (CORBA_Environment &)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+}
+
+
+BiDirPolicy::BidirectionalPolicyValue
+TAO_BidirectionalPolicy::value (
+ CORBA::Environment &)
+ ACE_THROW_SPEC ((
+ CORBA::SystemException))
+{
+ return this->value_;
+}