summaryrefslogtreecommitdiff
path: root/trunk/TAO/tao/RTCORBA/RT_Policy_i.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'trunk/TAO/tao/RTCORBA/RT_Policy_i.cpp')
-rw-r--r--trunk/TAO/tao/RTCORBA/RT_Policy_i.cpp1410
1 files changed, 1410 insertions, 0 deletions
diff --git a/trunk/TAO/tao/RTCORBA/RT_Policy_i.cpp b/trunk/TAO/tao/RTCORBA/RT_Policy_i.cpp
new file mode 100644
index 00000000000..5cb4737b17a
--- /dev/null
+++ b/trunk/TAO/tao/RTCORBA/RT_Policy_i.cpp
@@ -0,0 +1,1410 @@
+// $Id$
+
+#include "tao/RTCORBA/RT_Policy_i.h"
+
+#if defined (TAO_HAS_CORBA_MESSAGING) && TAO_HAS_CORBA_MESSAGING != 0
+
+#include "tao/ORB_Core.h"
+#include "tao/Policy_Manager.h"
+#include "tao/debug.h"
+#include "tao/CDR.h"
+#include "tao/AnyTypeCode/Any.h"
+
+#include "ace/OS_NS_string.h"
+
+ACE_RCSID (RTCORBA,
+ RT_Policy_i,
+ "$Id$")
+
+// ****************************************************************
+
+TAO_BEGIN_VERSIONED_NAMESPACE_DECL
+
+TAO_PriorityModelPolicy::TAO_PriorityModelPolicy (
+ RTCORBA::PriorityModel priority_model,
+ RTCORBA::Priority server_priority)
+ : ::CORBA::Object ()
+ , ::CORBA::Policy ()
+ , ::CORBA::LocalObject ()
+ , RTCORBA::PriorityModelPolicy ()
+ , TAO_Local_RefCounted_Object ()
+ , priority_model_ (priority_model)
+ , server_priority_ (server_priority)
+{
+}
+
+TAO_PriorityModelPolicy::TAO_PriorityModelPolicy (const TAO_PriorityModelPolicy &rhs)
+ : ::CORBA::Object ()
+ , ::CORBA::Policy ()
+ , ::CORBA::LocalObject ()
+ , RTCORBA::PriorityModelPolicy ()
+ , TAO_Local_RefCounted_Object ()
+ , priority_model_ (rhs.priority_model_)
+ , server_priority_ (rhs.server_priority_)
+{
+}
+
+TAO_PriorityModelPolicy::TAO_PriorityModelPolicy (void)
+ : priority_model_ (RTCORBA::SERVER_DECLARED),
+ server_priority_ (0)
+{
+}
+
+TAO_PriorityModelPolicy::~TAO_PriorityModelPolicy (void)
+{
+}
+
+CORBA::Policy_ptr
+TAO_PriorityModelPolicy::create (const CORBA::Any &
+ ACE_ENV_ARG_DECL)
+{
+ /*
+ * @@ The following code should be changed once the OMG spec has
+ * been fixed such that a RTCORBA::PriorityModelPolicy can be
+ * created by using the ORB::create_policy interface.
+ */
+ ACE_THROW_RETURN (CORBA::PolicyError (CORBA::BAD_POLICY_VALUE),
+ CORBA::Policy::_nil ());
+}
+
+RTCORBA::PriorityModel
+TAO_PriorityModelPolicy::get_priority_model (void)
+{
+ return this->priority_model_;
+}
+
+RTCORBA::PriorityModel
+TAO_PriorityModelPolicy::priority_model (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ return this->priority_model_;
+}
+
+RTCORBA::Priority
+TAO_PriorityModelPolicy::server_priority (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ return this->server_priority_;
+}
+
+CORBA::PolicyType
+TAO_PriorityModelPolicy::policy_type (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ return RTCORBA::PRIORITY_MODEL_POLICY_TYPE;
+}
+
+CORBA::Policy_ptr
+TAO_PriorityModelPolicy::copy (ACE_ENV_SINGLE_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ TAO_PriorityModelPolicy* tmp = 0;
+ ACE_NEW_THROW_EX (tmp,
+ TAO_PriorityModelPolicy (*this),
+ CORBA::NO_MEMORY (TAO::VMCID,
+ CORBA::COMPLETED_NO));
+ ACE_CHECK_RETURN (CORBA::Policy::_nil ());
+
+ return tmp;
+}
+
+void
+TAO_PriorityModelPolicy::destroy (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+}
+
+CORBA::Boolean
+TAO_PriorityModelPolicy::_tao_encode (TAO_OutputCDR &out_cdr)
+{
+ // Note: the fields are encoded according to
+ // the order specified in the RTCORBA 1.0 spec (ptc/99-05-03)
+ // section 4.7.3.
+
+ return ((out_cdr << priority_model_) && (out_cdr << server_priority_));
+}
+
+CORBA::Boolean
+TAO_PriorityModelPolicy::_tao_decode (TAO_InputCDR &in_cdr)
+{
+ return ((in_cdr >> priority_model_) && (in_cdr >> server_priority_));
+}
+
+TAO_Cached_Policy_Type
+TAO_PriorityModelPolicy::_tao_cached_type (void) const
+{
+ return TAO_CACHED_POLICY_PRIORITY_MODEL;
+}
+
+TAO_Policy_Scope
+TAO_PriorityModelPolicy::_tao_scope (void) const
+{
+ // Note that this policy is propogated to the client even though
+ // it is not specified here. The reason for this is that the
+ // server priority field is set dynamically depending on the model
+ // and the servant's priority. Therefore, it can't be simply
+ // copied to the list of client exposed policies.
+ return static_cast<TAO_Policy_Scope> (TAO_POLICY_ORB_SCOPE |
+ TAO_POLICY_POA_SCOPE);
+}
+
+// ****************************************************************
+
+TAO_ThreadpoolPolicy::TAO_ThreadpoolPolicy (RTCORBA::ThreadpoolId id)
+ : ::CORBA::Object ()
+ , ::CORBA::Policy ()
+ , ::CORBA::LocalObject ()
+ , RTCORBA::ThreadpoolPolicy ()
+ , TAO_Local_RefCounted_Object ()
+ , id_ (id)
+{
+}
+
+TAO_ThreadpoolPolicy::TAO_ThreadpoolPolicy (const TAO_ThreadpoolPolicy &rhs)
+ : ::CORBA::Object ()
+ , ::CORBA::Policy ()
+ , ::CORBA::LocalObject ()
+ , RTCORBA::ThreadpoolPolicy ()
+ , TAO_Local_RefCounted_Object ()
+ , id_ (rhs.id_)
+{
+}
+
+TAO_ThreadpoolPolicy::~TAO_ThreadpoolPolicy (void)
+{
+}
+
+CORBA::Policy_ptr
+TAO_ThreadpoolPolicy::create (const CORBA::Any &val
+ ACE_ENV_ARG_DECL)
+{
+ RTCORBA::ThreadpoolId value;
+ if ((val >>= value) == 0)
+ ACE_THROW_RETURN (CORBA::PolicyError (CORBA::BAD_POLICY_VALUE),
+ CORBA::Policy::_nil ());
+
+ TAO_ThreadpoolPolicy *tmp = 0;
+ ACE_NEW_THROW_EX (tmp,
+ TAO_ThreadpoolPolicy (value),
+ CORBA::NO_MEMORY (TAO::VMCID,
+ CORBA::COMPLETED_NO));
+ ACE_CHECK_RETURN (CORBA::Policy::_nil ());
+
+ return tmp;
+}
+
+RTCORBA::ThreadpoolId
+TAO_ThreadpoolPolicy::threadpool (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ return this->id_;
+}
+
+CORBA::PolicyType
+TAO_ThreadpoolPolicy::policy_type (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ return RTCORBA::THREADPOOL_POLICY_TYPE;
+}
+
+CORBA::Policy_ptr
+TAO_ThreadpoolPolicy::copy (ACE_ENV_SINGLE_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ TAO_ThreadpoolPolicy* tmp = 0;
+ ACE_NEW_THROW_EX (tmp,
+ TAO_ThreadpoolPolicy (*this),
+ CORBA::NO_MEMORY (TAO::VMCID,
+ CORBA::COMPLETED_NO));
+ ACE_CHECK_RETURN (CORBA::Policy::_nil ());
+
+ return tmp;
+}
+
+void
+TAO_ThreadpoolPolicy::destroy (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+}
+
+TAO_Cached_Policy_Type
+TAO_ThreadpoolPolicy::_tao_cached_type (void) const
+{
+ return TAO_CACHED_POLICY_THREADPOOL;
+}
+
+TAO_Policy_Scope
+TAO_ThreadpoolPolicy::_tao_scope (void) const
+{
+ return static_cast<TAO_Policy_Scope> (TAO_POLICY_ORB_SCOPE |
+ TAO_POLICY_POA_SCOPE);
+}
+
+// ****************************************************************
+
+TAO_PrivateConnectionPolicy::TAO_PrivateConnectionPolicy (void)
+ : ::CORBA::Object ()
+ , ::CORBA::Policy ()
+ , ::CORBA::LocalObject ()
+ , RTCORBA::PrivateConnectionPolicy ()
+ , TAO_Local_RefCounted_Object ()
+{
+}
+
+TAO_PrivateConnectionPolicy::TAO_PrivateConnectionPolicy (const TAO_PrivateConnectionPolicy &)
+ : ::CORBA::Object ()
+ , ::CORBA::Policy ()
+ , ::CORBA::LocalObject ()
+ , RTCORBA::PrivateConnectionPolicy ()
+ , TAO_Local_RefCounted_Object ()
+{
+}
+
+TAO_PrivateConnectionPolicy::~TAO_PrivateConnectionPolicy (void)
+{
+}
+
+CORBA::Policy_ptr
+TAO_PrivateConnectionPolicy::create (const CORBA::Any &
+ ACE_ENV_ARG_DECL)
+{
+ TAO_PrivateConnectionPolicy *tmp = 0;
+ ACE_NEW_THROW_EX (tmp,
+ TAO_PrivateConnectionPolicy (),
+ CORBA::NO_MEMORY (TAO::VMCID,
+ CORBA::COMPLETED_NO));
+ ACE_CHECK_RETURN (CORBA::Policy::_nil ());
+
+ return tmp;
+}
+
+CORBA::PolicyType
+TAO_PrivateConnectionPolicy::policy_type (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ return RTCORBA::PRIVATE_CONNECTION_POLICY_TYPE;
+}
+
+CORBA::Policy_ptr
+TAO_PrivateConnectionPolicy::copy (ACE_ENV_SINGLE_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ TAO_PrivateConnectionPolicy* tmp = 0;
+ ACE_NEW_THROW_EX (tmp,
+ TAO_PrivateConnectionPolicy (*this),
+ CORBA::NO_MEMORY (TAO::VMCID,
+ CORBA::COMPLETED_NO));
+ ACE_CHECK_RETURN (CORBA::Policy::_nil ());
+
+ return tmp;
+}
+
+void
+TAO_PrivateConnectionPolicy::destroy (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+}
+
+TAO_Cached_Policy_Type
+TAO_PrivateConnectionPolicy::_tao_cached_type (void) const
+{
+ return TAO_CACHED_POLICY_RT_PRIVATE_CONNECTION;
+}
+
+TAO_Policy_Scope
+TAO_PrivateConnectionPolicy::_tao_scope (void) const
+{
+ return static_cast<TAO_Policy_Scope> (TAO_POLICY_OBJECT_SCOPE |
+ TAO_POLICY_THREAD_SCOPE |
+ TAO_POLICY_ORB_SCOPE);
+}
+
+// ****************************************************************
+
+TAO_PriorityBandedConnectionPolicy::TAO_PriorityBandedConnectionPolicy (const RTCORBA::PriorityBands &bands)
+ : ::CORBA::Object ()
+ , ::CORBA::Policy ()
+ , ::CORBA::LocalObject ()
+ , RTCORBA::PriorityBandedConnectionPolicy ()
+ , TAO_Local_RefCounted_Object ()
+ , priority_bands_ (bands)
+{
+}
+
+TAO_PriorityBandedConnectionPolicy::TAO_PriorityBandedConnectionPolicy (const TAO_PriorityBandedConnectionPolicy &rhs)
+ : ::CORBA::Object ()
+ , ::CORBA::Policy ()
+ , ::CORBA::LocalObject ()
+ , RTCORBA::PriorityBandedConnectionPolicy ()
+ , TAO_Local_RefCounted_Object ()
+ , priority_bands_ (rhs.priority_bands_)
+{
+}
+
+TAO_PriorityBandedConnectionPolicy::TAO_PriorityBandedConnectionPolicy (void)
+{
+}
+
+TAO_PriorityBandedConnectionPolicy::~TAO_PriorityBandedConnectionPolicy (void)
+{
+}
+
+CORBA::Policy_ptr
+TAO_PriorityBandedConnectionPolicy::create (const CORBA::Any &val
+ ACE_ENV_ARG_DECL)
+{
+ RTCORBA::PriorityBands *value = 0;
+ if ((val >>= value) == 0)
+ ACE_THROW_RETURN (CORBA::PolicyError (CORBA::BAD_POLICY_VALUE),
+ CORBA::Policy::_nil ());
+
+ TAO_PriorityBandedConnectionPolicy *tmp = 0;
+ ACE_NEW_THROW_EX (tmp,
+ TAO_PriorityBandedConnectionPolicy (*value),
+ CORBA::NO_MEMORY (TAO::VMCID,
+ CORBA::COMPLETED_NO));
+ ACE_CHECK_RETURN (CORBA::Policy::_nil ());
+
+ return tmp;
+}
+
+RTCORBA::PriorityBands *
+TAO_PriorityBandedConnectionPolicy::priority_bands (ACE_ENV_SINGLE_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ RTCORBA::PriorityBands *tmp;
+ ACE_NEW_THROW_EX (tmp,
+ RTCORBA::PriorityBands (this->priority_bands_),
+ CORBA::NO_MEMORY (TAO::VMCID,
+ CORBA::COMPLETED_NO));
+ ACE_CHECK_RETURN (0);
+
+ return tmp;
+}
+
+CORBA::PolicyType
+TAO_PriorityBandedConnectionPolicy::policy_type (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ return RTCORBA::PRIORITY_BANDED_CONNECTION_POLICY_TYPE;
+}
+
+CORBA::Policy_ptr
+TAO_PriorityBandedConnectionPolicy::copy (ACE_ENV_SINGLE_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ TAO_PriorityBandedConnectionPolicy *tmp = 0;
+ ACE_NEW_THROW_EX (tmp,
+ TAO_PriorityBandedConnectionPolicy (*this),
+ CORBA::NO_MEMORY (TAO::VMCID,
+ CORBA::COMPLETED_NO));
+ ACE_CHECK_RETURN (CORBA::Policy::_nil ());
+
+ return tmp;
+}
+
+void
+TAO_PriorityBandedConnectionPolicy::destroy (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+}
+
+CORBA::Boolean
+TAO_PriorityBandedConnectionPolicy::_tao_encode (TAO_OutputCDR &out_cdr)
+{
+ return out_cdr << priority_bands_;
+}
+
+CORBA::Boolean
+TAO_PriorityBandedConnectionPolicy::_tao_decode (TAO_InputCDR &in_cdr)
+{
+ return in_cdr >> priority_bands_;
+}
+
+TAO_Cached_Policy_Type
+TAO_PriorityBandedConnectionPolicy::_tao_cached_type (void) const
+{
+ return TAO_CACHED_POLICY_RT_PRIORITY_BANDED_CONNECTION;
+}
+
+TAO_Policy_Scope
+TAO_PriorityBandedConnectionPolicy::_tao_scope (void) const
+{
+ return static_cast<TAO_Policy_Scope> (TAO_POLICY_DEFAULT_SCOPE |
+ TAO_POLICY_CLIENT_EXPOSED);
+}
+
+RTCORBA::PriorityBands &
+TAO_PriorityBandedConnectionPolicy::priority_bands_rep (void)
+{
+ return priority_bands_;
+}
+
+// ****************************************************************
+
+TAO_ServerProtocolPolicy::TAO_ServerProtocolPolicy (const RTCORBA::ProtocolList &protocols)
+ : ::CORBA::Object ()
+ , ::CORBA::Policy ()
+ , ::CORBA::LocalObject ()
+ , RTCORBA::ServerProtocolPolicy ()
+ , TAO_Local_RefCounted_Object ()
+ , protocols_ (protocols)
+{
+}
+
+TAO_ServerProtocolPolicy::TAO_ServerProtocolPolicy (const TAO_ServerProtocolPolicy &rhs)
+ : ::CORBA::Object ()
+ , ::CORBA::Policy ()
+ , ::CORBA::LocalObject ()
+ , RTCORBA::ServerProtocolPolicy ()
+ , TAO_Local_RefCounted_Object ()
+ , protocols_ (rhs.protocols_)
+{
+}
+
+TAO_ServerProtocolPolicy::~TAO_ServerProtocolPolicy (void)
+{
+}
+
+CORBA::Policy_ptr
+TAO_ServerProtocolPolicy::create (const CORBA::Any &val
+ ACE_ENV_ARG_DECL)
+{
+ RTCORBA::ProtocolList *value = 0;
+ if ((val >>= value) == 0)
+ ACE_THROW_RETURN (CORBA::PolicyError (CORBA::BAD_POLICY_VALUE),
+ CORBA::Policy::_nil ());
+
+ TAO_ServerProtocolPolicy *tmp = 0;
+ ACE_NEW_THROW_EX (tmp,
+ TAO_ServerProtocolPolicy (*value),
+ CORBA::NO_MEMORY (TAO::VMCID,
+ CORBA::COMPLETED_NO));
+ ACE_CHECK_RETURN (CORBA::Policy::_nil ());
+
+ return tmp;
+}
+
+RTCORBA::ProtocolList *
+TAO_ServerProtocolPolicy::protocols (ACE_ENV_SINGLE_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ RTCORBA::ProtocolList *tmp = 0;
+ ACE_NEW_THROW_EX (tmp,
+ RTCORBA::ProtocolList (this->protocols_),
+ CORBA::NO_MEMORY (TAO::VMCID,
+ CORBA::COMPLETED_NO));
+ ACE_CHECK_RETURN (0);
+
+ return tmp;
+}
+
+CORBA::PolicyType
+TAO_ServerProtocolPolicy::policy_type (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ return RTCORBA::SERVER_PROTOCOL_POLICY_TYPE;
+}
+
+CORBA::Policy_ptr
+TAO_ServerProtocolPolicy::copy (ACE_ENV_SINGLE_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ TAO_ServerProtocolPolicy* tmp = 0;
+ ACE_NEW_THROW_EX (tmp,
+ TAO_ServerProtocolPolicy (*this),
+ CORBA::NO_MEMORY (TAO::VMCID,
+ CORBA::COMPLETED_NO));
+ ACE_CHECK_RETURN (CORBA::Policy::_nil ());
+
+ return tmp;
+}
+
+void
+TAO_ServerProtocolPolicy::destroy (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+}
+
+TAO_Cached_Policy_Type
+TAO_ServerProtocolPolicy::_tao_cached_type (void) const
+{
+ return TAO_CACHED_POLICY_RT_SERVER_PROTOCOL;
+}
+
+TAO_Policy_Scope
+TAO_ServerProtocolPolicy::_tao_scope (void) const
+{
+ return static_cast<TAO_Policy_Scope> (TAO_POLICY_ORB_SCOPE |
+ TAO_POLICY_POA_SCOPE);
+}
+
+RTCORBA::ProtocolList &
+TAO_ServerProtocolPolicy::protocols_rep (void)
+{
+ return protocols_;
+}
+
+// ****************************************************************
+
+TAO_ClientProtocolPolicy::TAO_ClientProtocolPolicy (void)
+{
+}
+
+
+TAO_ClientProtocolPolicy::TAO_ClientProtocolPolicy (const RTCORBA::ProtocolList &protocols)
+ : ::CORBA::Object ()
+ , ::CORBA::Policy ()
+ , ::CORBA::LocalObject ()
+ , RTCORBA::ClientProtocolPolicy ()
+ , TAO_Local_RefCounted_Object ()
+ , protocols_ (protocols)
+{
+}
+
+TAO_ClientProtocolPolicy::TAO_ClientProtocolPolicy (const TAO_ClientProtocolPolicy &rhs)
+ : ::CORBA::Object ()
+ , ::CORBA::Policy ()
+ , ::CORBA::LocalObject ()
+ , RTCORBA::ClientProtocolPolicy ()
+ , TAO_Local_RefCounted_Object ()
+ , protocols_ (rhs.protocols_)
+{
+}
+
+TAO_ClientProtocolPolicy::~TAO_ClientProtocolPolicy ()
+{
+}
+
+CORBA::Policy_ptr
+TAO_ClientProtocolPolicy::create (const CORBA::Any &val
+ ACE_ENV_ARG_DECL)
+{
+ RTCORBA::ProtocolList *value = 0;
+ if ((val >>= value) == 0)
+ ACE_THROW_RETURN (CORBA::PolicyError (CORBA::BAD_POLICY_VALUE),
+ CORBA::Policy::_nil ());
+
+ TAO_ClientProtocolPolicy *tmp = 0;
+ ACE_NEW_THROW_EX (tmp,
+ TAO_ClientProtocolPolicy (*value),
+ CORBA::NO_MEMORY (TAO::VMCID,
+ CORBA::COMPLETED_NO));
+ ACE_CHECK_RETURN (CORBA::Policy::_nil ());
+
+ return tmp;
+}
+
+RTCORBA::ProtocolList *
+TAO_ClientProtocolPolicy::protocols (ACE_ENV_SINGLE_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ RTCORBA::ProtocolList *tmp = 0;
+ ACE_NEW_THROW_EX (tmp,
+ RTCORBA::ProtocolList (this->protocols_),
+ CORBA::NO_MEMORY (TAO::VMCID,
+ CORBA::COMPLETED_NO));
+ ACE_CHECK_RETURN (0);
+
+ return tmp;
+}
+
+CORBA::PolicyType
+TAO_ClientProtocolPolicy::policy_type (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ return RTCORBA::CLIENT_PROTOCOL_POLICY_TYPE;
+}
+
+CORBA::Policy_ptr
+TAO_ClientProtocolPolicy::copy (ACE_ENV_SINGLE_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ TAO_ClientProtocolPolicy* tmp = 0;
+ ACE_NEW_THROW_EX (tmp,
+ TAO_ClientProtocolPolicy (*this),
+ CORBA::NO_MEMORY (TAO::VMCID,
+ CORBA::COMPLETED_NO));
+ ACE_CHECK_RETURN (CORBA::Policy::_nil ());
+
+ return tmp;
+}
+
+void
+TAO_ClientProtocolPolicy::destroy (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+}
+
+TAO_Cached_Policy_Type
+TAO_ClientProtocolPolicy::_tao_cached_type (void) const
+{
+ return TAO_CACHED_POLICY_RT_CLIENT_PROTOCOL;
+}
+
+TAO_Policy_Scope
+TAO_ClientProtocolPolicy::_tao_scope (void) const
+{
+ return static_cast<TAO_Policy_Scope> (TAO_POLICY_DEFAULT_SCOPE |
+ TAO_POLICY_CLIENT_EXPOSED);
+}
+
+CORBA::Boolean
+TAO_ClientProtocolPolicy::_tao_encode (TAO_OutputCDR &out_cdr)
+{
+ CORBA::Boolean is_write_ok = out_cdr << this->protocols_.length ();
+
+ for (CORBA::ULong i = 0;
+ (i < this->protocols_.length ()) && is_write_ok;
+ i++)
+ {
+ is_write_ok =
+ (out_cdr << this->protocols_[i].protocol_type)
+ &&
+ this->protocols_[i].orb_protocol_properties->_tao_encode (out_cdr)
+ &&
+ this->protocols_[i].transport_protocol_properties->_tao_encode (out_cdr);
+ }
+
+ return is_write_ok;
+}
+
+CORBA::Boolean
+TAO_ClientProtocolPolicy::_tao_decode (TAO_InputCDR &in_cdr)
+{
+ CORBA::ULong length;
+ CORBA::Boolean is_read_ok = in_cdr >> length;
+
+ this->protocols_.length (length);
+
+ for (CORBA::ULong i = 0; (i < length) && is_read_ok; i++)
+ {
+ is_read_ok = in_cdr >> this->protocols_[i].protocol_type;
+
+ this->protocols_[i].orb_protocol_properties =
+ TAO_Protocol_Properties_Factory::create_orb_protocol_property
+ (this->protocols_[i].protocol_type);
+
+ this->protocols_[i].transport_protocol_properties =
+ TAO_Protocol_Properties_Factory::create_transport_protocol_property
+ (this->protocols_[i].protocol_type, in_cdr.orb_core ());
+
+ if (is_read_ok
+ && (this->protocols_[i].orb_protocol_properties.ptr () != 0))
+ is_read_ok =
+ this->protocols_[i].orb_protocol_properties->_tao_decode (in_cdr);
+
+ if (is_read_ok
+ && (this->protocols_[i].transport_protocol_properties.ptr () != 0))
+ is_read_ok =
+ this->protocols_[i].transport_protocol_properties->_tao_decode (in_cdr);
+
+ }
+
+ return is_read_ok;
+}
+
+RTCORBA::ProtocolList &
+TAO_ClientProtocolPolicy::protocols_rep (void)
+{
+ return protocols_;
+}
+
+// ****************************************************************
+
+TAO_TCP_Protocol_Properties::TAO_TCP_Protocol_Properties (CORBA::Long send_buffer_size,
+ CORBA::Long recv_buffer_size,
+ CORBA::Boolean keep_alive,
+ CORBA::Boolean dont_route,
+ CORBA::Boolean no_delay,
+ CORBA::Boolean enable_network_priority)
+ : send_buffer_size_ (send_buffer_size),
+ recv_buffer_size_ (recv_buffer_size),
+ keep_alive_ (keep_alive),
+ dont_route_ (dont_route),
+ no_delay_ (no_delay),
+ enable_network_priority_ (enable_network_priority)
+{
+}
+
+TAO_TCP_Protocol_Properties::~TAO_TCP_Protocol_Properties (void)
+{
+}
+
+CORBA::Long
+TAO_TCP_Protocol_Properties::send_buffer_size (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ return this->send_buffer_size_;
+}
+
+void
+TAO_TCP_Protocol_Properties::send_buffer_size (CORBA::Long send_buffer_size
+ ACE_ENV_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ this->send_buffer_size_ = send_buffer_size;
+}
+
+CORBA::Long
+TAO_TCP_Protocol_Properties::recv_buffer_size (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ return this->recv_buffer_size_;
+}
+
+void
+TAO_TCP_Protocol_Properties::recv_buffer_size (CORBA::Long recv_buffer_size
+ ACE_ENV_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ this->recv_buffer_size_ = recv_buffer_size;
+}
+
+CORBA::Boolean
+TAO_TCP_Protocol_Properties::keep_alive (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ return this->keep_alive_;
+}
+
+void
+TAO_TCP_Protocol_Properties::keep_alive (CORBA::Boolean keep_alive
+ ACE_ENV_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ this->keep_alive_ = keep_alive;
+}
+
+CORBA::Boolean
+TAO_TCP_Protocol_Properties::dont_route (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ return this->dont_route_;
+}
+
+void
+TAO_TCP_Protocol_Properties::dont_route (CORBA::Boolean dont_route
+ ACE_ENV_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ this->dont_route_ = dont_route;
+}
+
+CORBA::Boolean TAO_TCP_Protocol_Properties::no_delay (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ return this->no_delay_;
+}
+
+void
+TAO_TCP_Protocol_Properties::no_delay (CORBA::Boolean no_delay
+ ACE_ENV_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ this->no_delay_ = no_delay;
+}
+
+CORBA::Boolean
+TAO_TCP_Protocol_Properties::enable_network_priority (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ return this->enable_network_priority_;
+}
+
+void
+TAO_TCP_Protocol_Properties::enable_network_priority (CORBA::Boolean enable
+ ACE_ENV_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ this->enable_network_priority_ = enable;
+}
+
+CORBA::Boolean
+TAO_TCP_Protocol_Properties::_tao_encode (TAO_OutputCDR & out_cdr)
+{
+ return ((out_cdr << this->send_buffer_size_)
+ &&
+ (out_cdr << this->recv_buffer_size_)
+ &&
+ (out_cdr.write_boolean (this->keep_alive_))
+ &&
+ (out_cdr.write_boolean (this->dont_route_))
+ &&
+ (out_cdr.write_boolean (this->no_delay_)));
+}
+
+CORBA::Boolean
+TAO_TCP_Protocol_Properties::_tao_decode (TAO_InputCDR &in_cdr)
+{
+ return ((in_cdr >> this->send_buffer_size_)
+ &&
+ (in_cdr >> this->recv_buffer_size_)
+ &&
+ (in_cdr.read_boolean (this->keep_alive_))
+ &&
+ (in_cdr.read_boolean (this->dont_route_))
+ &&
+ (in_cdr.read_boolean (this->no_delay_)));
+}
+
+// ****************************************************************
+
+TAO_UnixDomain_Protocol_Properties::TAO_UnixDomain_Protocol_Properties
+(CORBA::Long send_buffer_size,
+ CORBA::Long recv_buffer_size)
+ : send_buffer_size_ (send_buffer_size),
+ recv_buffer_size_ (recv_buffer_size)
+{
+}
+
+TAO_UnixDomain_Protocol_Properties::~TAO_UnixDomain_Protocol_Properties (void)
+{
+}
+
+CORBA::Long
+TAO_UnixDomain_Protocol_Properties::send_buffer_size (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ return this->send_buffer_size_;
+}
+
+void
+TAO_UnixDomain_Protocol_Properties::send_buffer_size (CORBA::Long send_buffer_size
+ ACE_ENV_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ this->send_buffer_size_ = send_buffer_size;
+}
+
+CORBA::Long
+TAO_UnixDomain_Protocol_Properties::recv_buffer_size (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ return this->recv_buffer_size_;
+}
+
+void
+TAO_UnixDomain_Protocol_Properties::recv_buffer_size (CORBA::Long recv_buffer_size
+ ACE_ENV_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ this->recv_buffer_size_ = recv_buffer_size;
+}
+
+CORBA::Boolean
+TAO_UnixDomain_Protocol_Properties::_tao_encode (TAO_OutputCDR &out_cdr)
+{
+ return ((out_cdr << this->send_buffer_size_)
+ && (out_cdr << this->recv_buffer_size_));
+}
+
+CORBA::Boolean
+TAO_UnixDomain_Protocol_Properties::_tao_decode (TAO_InputCDR &in_cdr)
+{
+ return ((in_cdr >> this->send_buffer_size_)
+ && (in_cdr >> this->recv_buffer_size_));
+}
+
+// ****************************************************************
+
+TAO_SharedMemory_Protocol_Properties::TAO_SharedMemory_Protocol_Properties (CORBA::Long send_buffer_size,
+ CORBA::Long recv_buffer_size,
+ CORBA::Boolean keep_alive,
+ CORBA::Boolean dont_route,
+ CORBA::Boolean no_delay,
+ CORBA::Long preallocate_buffer_size,
+ const char *mmap_filename,
+ const char *mmap_lockname)
+ : send_buffer_size_ (send_buffer_size),
+ recv_buffer_size_ (recv_buffer_size),
+ keep_alive_ (keep_alive),
+ dont_route_ (dont_route),
+ no_delay_ (no_delay),
+ preallocate_buffer_size_ (preallocate_buffer_size),
+ mmap_filename_ (mmap_filename),
+ mmap_lockname_ (mmap_lockname)
+{
+}
+
+TAO_SharedMemory_Protocol_Properties::~TAO_SharedMemory_Protocol_Properties (void)
+{
+}
+
+
+CORBA::Long
+TAO_SharedMemory_Protocol_Properties::send_buffer_size (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ return this->send_buffer_size_;
+}
+
+void
+TAO_SharedMemory_Protocol_Properties::send_buffer_size (CORBA::Long send_buffer_size
+ ACE_ENV_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ this->send_buffer_size_ = send_buffer_size;
+}
+
+CORBA::Long
+TAO_SharedMemory_Protocol_Properties::recv_buffer_size (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ return this->recv_buffer_size_;
+}
+
+void
+TAO_SharedMemory_Protocol_Properties::recv_buffer_size (CORBA::Long recv_buffer_size
+ ACE_ENV_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ this->recv_buffer_size_ = recv_buffer_size;
+}
+
+CORBA::Boolean
+TAO_SharedMemory_Protocol_Properties::keep_alive (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ return this->keep_alive_;
+}
+
+void
+TAO_SharedMemory_Protocol_Properties::keep_alive (CORBA::Boolean keep_alive
+ ACE_ENV_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ this->keep_alive_ = keep_alive;
+}
+
+CORBA::Boolean
+TAO_SharedMemory_Protocol_Properties::dont_route (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ return this->dont_route_;
+}
+
+void
+TAO_SharedMemory_Protocol_Properties::dont_route (CORBA::Boolean dont_route
+ ACE_ENV_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ this->dont_route_ = dont_route;
+}
+
+CORBA::Boolean
+TAO_SharedMemory_Protocol_Properties::no_delay (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ return this->no_delay_;
+}
+
+void
+TAO_SharedMemory_Protocol_Properties::no_delay (CORBA::Boolean no_delay
+ ACE_ENV_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ this->no_delay_ = no_delay;
+}
+
+CORBA::Long
+TAO_SharedMemory_Protocol_Properties::preallocate_buffer_size (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ return this->preallocate_buffer_size_;
+}
+
+void
+TAO_SharedMemory_Protocol_Properties::preallocate_buffer_size (CORBA::Long preallocate_buffer_size
+ ACE_ENV_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ this->preallocate_buffer_size_ = preallocate_buffer_size;
+}
+
+char *
+TAO_SharedMemory_Protocol_Properties::mmap_filename (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ return this->mmap_filename_.rep ();
+}
+
+void
+TAO_SharedMemory_Protocol_Properties::mmap_filename (const char * mmap_filename
+ ACE_ENV_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ this->mmap_filename_.set (mmap_filename);
+}
+
+char *
+TAO_SharedMemory_Protocol_Properties::mmap_lockname (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ return this->mmap_lockname_.rep ();
+}
+
+void
+TAO_SharedMemory_Protocol_Properties::mmap_lockname (const char * mmap_lockname
+ ACE_ENV_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ this->mmap_lockname_.set (mmap_lockname);
+}
+
+CORBA::Boolean
+TAO_SharedMemory_Protocol_Properties::_tao_encode (TAO_OutputCDR &out_cdr)
+{
+ return ((out_cdr << this->send_buffer_size_)
+ &&
+ (out_cdr << this->recv_buffer_size_)
+ &&
+ (out_cdr.write_boolean (this->keep_alive_))
+ &&
+ (out_cdr.write_boolean (this->dont_route_))
+ &&
+ (out_cdr.write_boolean (this->no_delay_))
+ &&
+ (out_cdr << this->preallocate_buffer_size_)
+ &&
+ (out_cdr << this->mmap_filename_)
+ &&
+ (out_cdr << this->mmap_lockname_));
+}
+
+CORBA::Boolean
+TAO_SharedMemory_Protocol_Properties::_tao_decode (TAO_InputCDR &in_cdr)
+{
+ return ((in_cdr >> this->send_buffer_size_)
+ &&
+ (in_cdr >> this->recv_buffer_size_)
+ &&
+ (in_cdr.read_boolean (this->keep_alive_))
+ &&
+ (in_cdr.read_boolean (this->dont_route_))
+ &&
+ (in_cdr.read_boolean (this->no_delay_))
+ &&
+ (in_cdr >> this->preallocate_buffer_size_)
+ &&
+ (in_cdr >> this->mmap_filename_)
+ &&
+ (in_cdr >> this->mmap_lockname_));
+}
+
+// ****************************************************************
+
+TAO_UserDatagram_Protocol_Properties::TAO_UserDatagram_Protocol_Properties (CORBA::Boolean enable_network_priority)
+ : enable_network_priority_ (enable_network_priority)
+{
+}
+
+TAO_UserDatagram_Protocol_Properties::~TAO_UserDatagram_Protocol_Properties (void)
+{
+}
+
+CORBA::Boolean
+TAO_UserDatagram_Protocol_Properties::enable_network_priority (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ return this->enable_network_priority_;
+}
+
+void
+TAO_UserDatagram_Protocol_Properties::enable_network_priority (CORBA::Boolean enable
+ ACE_ENV_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ this->enable_network_priority_ = enable;
+}
+
+CORBA::Boolean
+TAO_UserDatagram_Protocol_Properties::_tao_encode (TAO_OutputCDR &)
+{
+ return true;
+}
+
+CORBA::Boolean
+TAO_UserDatagram_Protocol_Properties::_tao_decode (TAO_InputCDR &)
+{
+ return true;
+}
+
+// ****************************************************************
+
+TAO_StreamControl_Protocol_Properties::TAO_StreamControl_Protocol_Properties (CORBA::Long send_buffer_size,
+ CORBA::Long recv_buffer_size,
+ CORBA::Boolean keep_alive,
+ CORBA::Boolean dont_route,
+ CORBA::Boolean no_delay,
+ CORBA::Boolean enable_network_priority)
+ : send_buffer_size_ (send_buffer_size),
+ recv_buffer_size_ (recv_buffer_size),
+ keep_alive_ (keep_alive),
+ dont_route_ (dont_route),
+ no_delay_ (no_delay),
+ enable_network_priority_ (enable_network_priority)
+{
+}
+
+TAO_StreamControl_Protocol_Properties::~TAO_StreamControl_Protocol_Properties (void)
+{
+}
+
+CORBA::Long
+TAO_StreamControl_Protocol_Properties::send_buffer_size (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ return this->send_buffer_size_;
+}
+
+void
+TAO_StreamControl_Protocol_Properties::send_buffer_size (CORBA::Long send_buffer_size
+ ACE_ENV_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ this->send_buffer_size_ = send_buffer_size;
+}
+
+CORBA::Long
+TAO_StreamControl_Protocol_Properties::recv_buffer_size (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ return this->recv_buffer_size_;
+}
+
+void
+TAO_StreamControl_Protocol_Properties::recv_buffer_size (CORBA::Long recv_buffer_size
+ ACE_ENV_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ this->recv_buffer_size_ = recv_buffer_size;
+}
+
+CORBA::Boolean
+TAO_StreamControl_Protocol_Properties::keep_alive (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ return this->keep_alive_;
+}
+
+void
+TAO_StreamControl_Protocol_Properties::keep_alive (CORBA::Boolean keep_alive
+ ACE_ENV_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ this->keep_alive_ = keep_alive;
+}
+
+CORBA::Boolean
+TAO_StreamControl_Protocol_Properties::dont_route (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ return this->dont_route_;
+}
+
+void
+TAO_StreamControl_Protocol_Properties::dont_route (CORBA::Boolean dont_route
+ ACE_ENV_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ this->dont_route_ = dont_route;
+}
+
+CORBA::Boolean TAO_StreamControl_Protocol_Properties::no_delay (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ return this->no_delay_;
+}
+
+void
+TAO_StreamControl_Protocol_Properties::no_delay (CORBA::Boolean no_delay
+ ACE_ENV_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ this->no_delay_ = no_delay;
+}
+
+CORBA::Boolean
+TAO_StreamControl_Protocol_Properties::enable_network_priority (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ return this->enable_network_priority_;
+}
+
+void
+TAO_StreamControl_Protocol_Properties::enable_network_priority (CORBA::Boolean enable
+ ACE_ENV_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ this->enable_network_priority_ = enable;
+}
+
+CORBA::Boolean
+TAO_StreamControl_Protocol_Properties::_tao_encode (TAO_OutputCDR & out_cdr)
+{
+ return ((out_cdr << this->send_buffer_size_)
+ &&
+ (out_cdr << this->recv_buffer_size_)
+ &&
+ (out_cdr.write_boolean (this->keep_alive_))
+ &&
+ (out_cdr.write_boolean (this->dont_route_))
+ &&
+ (out_cdr.write_boolean (this->no_delay_)));
+}
+
+CORBA::Boolean
+TAO_StreamControl_Protocol_Properties::_tao_decode (TAO_InputCDR &in_cdr)
+{
+ return ((in_cdr >> this->send_buffer_size_)
+ &&
+ (in_cdr >> this->recv_buffer_size_)
+ &&
+ (in_cdr.read_boolean (this->keep_alive_))
+ &&
+ (in_cdr.read_boolean (this->dont_route_))
+ &&
+ (in_cdr.read_boolean (this->no_delay_)));
+}
+
+// ****************************************************************
+
+TAO_GIOP_Protocol_Properties::TAO_GIOP_Protocol_Properties (void)
+{
+}
+
+TAO_GIOP_Protocol_Properties::~TAO_GIOP_Protocol_Properties (void)
+{
+}
+
+CORBA::Boolean
+TAO_GIOP_Protocol_Properties::_tao_encode (TAO_OutputCDR &)
+{
+ return 1;
+}
+
+CORBA::Boolean
+TAO_GIOP_Protocol_Properties::_tao_decode (TAO_InputCDR &)
+{
+ return 1;
+}
+
+// ****************************************************************
+
+RTCORBA::ProtocolProperties *
+TAO_Protocol_Properties_Factory::create_transport_protocol_property (IOP::ProfileId id,
+ TAO_ORB_Core *orb_core)
+{
+ RTCORBA::ProtocolProperties* property = 0;
+
+ if (id == IOP::TAG_INTERNET_IOP)
+ {
+ int send_buffer_size = orb_core ? orb_core->orb_params ()->sock_sndbuf_size () : 0;
+ int recv_buffer_size = orb_core ? orb_core->orb_params ()->sock_rcvbuf_size () : 0;
+ int no_delay = orb_core ? orb_core->orb_params ()->nodelay () : 0;
+ CORBA::Boolean keep_alive = true;
+ CORBA::Boolean dont_route = false;
+ CORBA::Boolean enable_network_priority = false;
+
+ ACE_NEW_RETURN (property,
+ TAO_TCP_Protocol_Properties (send_buffer_size,
+ recv_buffer_size,
+ keep_alive,
+ dont_route,
+ no_delay,
+ enable_network_priority),
+ 0);
+ }
+
+ else if (id == TAO_TAG_SHMEM_PROFILE)
+ {
+ int send_buffer_size = orb_core ? orb_core->orb_params ()->sock_sndbuf_size () : 0;
+ int recv_buffer_size = orb_core ? orb_core->orb_params ()->sock_rcvbuf_size () : 0;
+ int no_delay = orb_core ? orb_core->orb_params ()->nodelay () : 0;
+ CORBA::Boolean keep_alive = true;
+ CORBA::Boolean dont_route = false;
+ CORBA::Long preallocate_buffer_size = false;
+ const char *mmap_filename = "";
+ const char *mmap_lockname = "";
+
+ ACE_NEW_RETURN (property,
+ TAO_SharedMemory_Protocol_Properties (send_buffer_size,
+ recv_buffer_size,
+ keep_alive,
+ dont_route,
+ no_delay,
+ preallocate_buffer_size,
+ mmap_filename,
+ mmap_lockname),
+ 0);
+ }
+
+ else if (id == TAO_TAG_UIOP_PROFILE)
+ {
+ int send_buffer_size = orb_core ? orb_core->orb_params ()->sock_sndbuf_size () : 0;
+ int recv_buffer_size = orb_core ? orb_core->orb_params ()->sock_rcvbuf_size () : 0;
+
+ ACE_NEW_RETURN (property,
+ TAO_UnixDomain_Protocol_Properties (send_buffer_size,
+ recv_buffer_size),
+ 0);
+ }
+
+ else if (id == TAO_TAG_DIOP_PROFILE)
+ {
+ CORBA::Boolean enable_network_priority = 0;
+
+ ACE_NEW_RETURN (property,
+ TAO_UserDatagram_Protocol_Properties (enable_network_priority),
+ 0);
+ }
+
+ else if (id == TAO_TAG_SCIOP_PROFILE)
+ {
+ int send_buffer_size = orb_core ? orb_core->orb_params ()->sock_sndbuf_size () : 0;
+ int recv_buffer_size = orb_core ? orb_core->orb_params ()->sock_rcvbuf_size () : 0;
+ int no_delay = orb_core ? orb_core->orb_params ()->nodelay () : 0;
+ CORBA::Boolean keep_alive = true;
+ CORBA::Boolean dont_route = false;
+ CORBA::Boolean enable_network_priority = false;
+
+ ACE_NEW_RETURN (property,
+ TAO_StreamControl_Protocol_Properties (send_buffer_size,
+ recv_buffer_size,
+ keep_alive,
+ dont_route,
+ no_delay,
+ enable_network_priority),
+ 0);
+ }
+
+ return property;
+}
+
+RTCORBA::ProtocolProperties*
+TAO_Protocol_Properties_Factory::create_orb_protocol_property (IOP::ProfileId id)
+{
+ RTCORBA::ProtocolProperties* property = 0;
+
+ if (id == IOP::TAG_INTERNET_IOP)
+ ACE_NEW_RETURN (property,
+ TAO_GIOP_Protocol_Properties,
+ 0);
+
+ // Right now the only supported ORB protocol is GIOP
+ // so we couple this with every protocol property.
+ // The else statement is not necessary, but it
+ // is here just to make clear that as soon as
+ // new ORB protocol are supported other case
+ // should be considered.
+ else
+ ACE_NEW_RETURN (property,
+ TAO_GIOP_Protocol_Properties,
+ 0);
+ return property;
+}
+
+TAO_END_VERSIONED_NAMESPACE_DECL
+
+#endif /* TAO_HAS_CORBA_MESSAGING && TAO_HAS_CORBA_MESSAGING != 0 */