diff options
author | bala <balanatarajan@users.noreply.github.com> | 2001-03-29 20:24:46 +0000 |
---|---|---|
committer | bala <balanatarajan@users.noreply.github.com> | 2001-03-29 20:24:46 +0000 |
commit | b91198dc08fe643a8e0feb00cb03a83b05f3a602 (patch) | |
tree | 09a69f260d0ea697f61473b4b8029ce1bf5fe8c9 | |
parent | ea964b2e8652455b3a9f4fd5d4fbdac7c0f1c059 (diff) | |
download | ATCD-b91198dc08fe643a8e0feb00cb03a83b05f3a602.tar.gz |
*** empty log message ***
-rw-r--r-- | TAO/tao/BiDir_GIOP/BiDirGIOP.cpp | 61 | ||||
-rw-r--r-- | TAO/tao/BiDir_GIOP/BiDirGIOP.cpp~ | 59 | ||||
-rw-r--r-- | TAO/tao/BiDir_GIOP/BiDirPolicyC.cpp | 139 | ||||
-rw-r--r-- | TAO/tao/BiDir_GIOP/BiDirPolicyC.cpp~ | 140 | ||||
-rw-r--r-- | TAO/tao/BiDir_GIOP/BiDir_ORBInitializer.cpp | 70 | ||||
-rw-r--r-- | TAO/tao/BiDir_GIOP/BiDir_ORBInitializer.cpp~ | 71 | ||||
-rw-r--r-- | TAO/tao/BiDir_GIOP/BiDir_PolicyFactory.cpp | 47 | ||||
-rw-r--r-- | TAO/tao/BiDir_GIOP/BiDir_PolicyFactory.cpp~ | 47 | ||||
-rw-r--r-- | TAO/tao/BiDir_GIOP/BiDir_Policy_i.cpp | 80 | ||||
-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_; +} |