Go to the documentation of this file.00001
00002
00003 #include "tao/DiffServPolicy/Server_Network_Priority_Policy.h"
00004 #include "tao/SystemException.h"
00005 #include "tao/ORB_Constants.h"
00006 #include "tao/CDR.h"
00007
00008 ACE_RCSID (DiffServPolicy,
00009 Server_Network_Priority_Policy,
00010 "$Id: Server_Network_Priority_Policy.cpp 81436 2008-04-25 09:10:41Z johnnyw $")
00011
00012 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00013
00014 TAO_Server_Network_Priority_Policy::TAO_Server_Network_Priority_Policy (void)
00015 : ::CORBA::Object ()
00016 , ::CORBA::Policy ()
00017 , TAO::NetworkPriorityPolicy ()
00018 , ::CORBA::LocalObject ()
00019 , request_diffserv_codepoint_ (0)
00020 , reply_diffserv_codepoint_ (0)
00021 , network_priority_model_ (TAO::NO_NETWORK_PRIORITY)
00022 {
00023 }
00024
00025 TAO_Server_Network_Priority_Policy::~TAO_Server_Network_Priority_Policy (void)
00026 {
00027 }
00028
00029 TAO_Server_Network_Priority_Policy::TAO_Server_Network_Priority_Policy (
00030 const TAO::DiffservCodepoint &request_diffserv_codepoint,
00031 const TAO::DiffservCodepoint &reply_diffserv_codepoint,
00032 TAO::NetworkPriorityModel &network_priority_model)
00033 : ::CORBA::Object ()
00034 , ::CORBA::Policy ()
00035 , TAO::NetworkPriorityPolicy ()
00036 , ::CORBA::LocalObject ()
00037 , request_diffserv_codepoint_ (request_diffserv_codepoint)
00038 , reply_diffserv_codepoint_ (reply_diffserv_codepoint)
00039 , network_priority_model_ (network_priority_model)
00040 {
00041 }
00042
00043 TAO_Server_Network_Priority_Policy::TAO_Server_Network_Priority_Policy (
00044 const TAO_Server_Network_Priority_Policy &rhs)
00045 : ::CORBA::Object ()
00046 , ::CORBA::Policy ()
00047 , TAO::NetworkPriorityPolicy ()
00048 , ::CORBA::LocalObject ()
00049 , request_diffserv_codepoint_ (rhs.request_diffserv_codepoint_)
00050 , reply_diffserv_codepoint_ (rhs.reply_diffserv_codepoint_)
00051 , network_priority_model_ (rhs.network_priority_model_)
00052 {
00053 }
00054
00055 CORBA::Policy_ptr
00056 TAO_Server_Network_Priority_Policy::create (const CORBA::Any &)
00057 {
00058 CORBA::Policy_ptr policy = CORBA::Policy::_nil ();
00059
00060 ACE_NEW_THROW_EX (policy,
00061 TAO_Server_Network_Priority_Policy (),
00062 CORBA::NO_MEMORY (TAO::VMCID,
00063 CORBA::COMPLETED_NO));
00064 return policy;
00065 }
00066
00067 CORBA::PolicyType
00068 TAO_Server_Network_Priority_Policy::policy_type (void)
00069 {
00070 return TAO::NETWORK_PRIORITY_TYPE;
00071 }
00072
00073 TAO_Server_Network_Priority_Policy *
00074 TAO_Server_Network_Priority_Policy::clone (void) const
00075 {
00076 TAO_Server_Network_Priority_Policy *copy = 0;
00077 ACE_NEW_RETURN (copy,
00078 TAO_Server_Network_Priority_Policy (*this),
00079 0);
00080 return copy;
00081 }
00082
00083 TAO::DiffservCodepoint
00084 TAO_Server_Network_Priority_Policy::request_diffserv_codepoint (void)
00085 {
00086 return this->request_diffserv_codepoint_;
00087 }
00088
00089 void
00090 TAO_Server_Network_Priority_Policy::request_diffserv_codepoint (
00091 TAO::DiffservCodepoint req_dscp)
00092 {
00093 this->request_diffserv_codepoint_ = req_dscp;
00094 }
00095
00096 TAO::DiffservCodepoint
00097 TAO_Server_Network_Priority_Policy::reply_diffserv_codepoint (void)
00098 {
00099 return this->reply_diffserv_codepoint_;
00100 }
00101
00102 void
00103 TAO_Server_Network_Priority_Policy::reply_diffserv_codepoint (
00104 TAO::DiffservCodepoint reply_dscp)
00105 {
00106 this->reply_diffserv_codepoint_ = reply_dscp;
00107 }
00108
00109 TAO::NetworkPriorityModel
00110 TAO_Server_Network_Priority_Policy::network_priority_model (void)
00111 {
00112 return this->network_priority_model_;
00113 }
00114
00115 void
00116 TAO_Server_Network_Priority_Policy::network_priority_model (
00117 TAO::NetworkPriorityModel npm)
00118 {
00119 this->network_priority_model_ = npm;
00120 }
00121
00122 CORBA::Policy_ptr
00123 TAO_Server_Network_Priority_Policy::copy (void)
00124 {
00125 TAO_Server_Network_Priority_Policy* servant = 0;
00126 ACE_NEW_THROW_EX (servant,
00127 TAO_Server_Network_Priority_Policy (*this),
00128 CORBA::NO_MEMORY ());
00129
00130 return servant;
00131 }
00132
00133 void
00134 TAO_Server_Network_Priority_Policy::destroy (void)
00135 {
00136 }
00137
00138 TAO_Cached_Policy_Type
00139 TAO_Server_Network_Priority_Policy::_tao_cached_type (void) const
00140 {
00141 return TAO_CACHED_POLICY_NETWORK_PRIORITY;
00142 }
00143
00144 TAO_Policy_Scope
00145 TAO_Server_Network_Priority_Policy::_tao_scope (void) const
00146 {
00147 return static_cast<TAO_Policy_Scope> (TAO_POLICY_DEFAULT_SCOPE |
00148 TAO_POLICY_CLIENT_EXPOSED);
00149 }
00150
00151 CORBA::Boolean
00152 TAO_Server_Network_Priority_Policy::_tao_encode (TAO_OutputCDR &out_cdr)
00153 {
00154 return ((out_cdr << request_diffserv_codepoint_) &&
00155 (out_cdr << reply_diffserv_codepoint_) &&
00156 (out_cdr << network_priority_model_));
00157 }
00158
00159 CORBA::Boolean
00160 TAO_Server_Network_Priority_Policy::_tao_decode (TAO_InputCDR &in_cdr)
00161 {
00162 return ((in_cdr >> request_diffserv_codepoint_) &&
00163 (in_cdr >> reply_diffserv_codepoint_) &&
00164 (in_cdr >> network_priority_model_));
00165 }
00166
00167 TAO_END_VERSIONED_NAMESPACE_DECL