RT_Policy_i.cpp

Go to the documentation of this file.
00001 // $Id: RT_Policy_i.cpp 78627 2007-06-28 08:50:01Z johnnyw $
00002 
00003 #include "tao/RTCORBA/RT_Policy_i.h"
00004 
00005 #if defined (TAO_HAS_CORBA_MESSAGING) && TAO_HAS_CORBA_MESSAGING != 0
00006 
00007 #include "tao/ORB_Core.h"
00008 #include "tao/Policy_Manager.h"
00009 #include "tao/debug.h"
00010 #include "tao/CDR.h"
00011 #include "tao/AnyTypeCode/Any.h"
00012 #include "tao/SystemException.h"
00013 
00014 #include "ace/OS_NS_string.h"
00015 
00016 ACE_RCSID (RTCORBA,
00017            RT_Policy_i,
00018            "$Id: RT_Policy_i.cpp 78627 2007-06-28 08:50:01Z johnnyw $")
00019 
00020 // ****************************************************************
00021 
00022 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00023 
00024 TAO_PriorityModelPolicy::TAO_PriorityModelPolicy (
00025   RTCORBA::PriorityModel priority_model,
00026   RTCORBA::Priority server_priority)
00027   : ::CORBA::Object ()
00028   , ::CORBA::Policy ()
00029   , ::CORBA::LocalObject ()
00030   , RTCORBA::PriorityModelPolicy ()
00031   , TAO_Local_RefCounted_Object ()
00032   , priority_model_ (priority_model)
00033   , server_priority_ (server_priority)
00034 {
00035 }
00036 
00037 TAO_PriorityModelPolicy::TAO_PriorityModelPolicy (const TAO_PriorityModelPolicy &rhs)
00038   : ::CORBA::Object ()
00039   , ::CORBA::Policy ()
00040   , ::CORBA::LocalObject ()
00041   , RTCORBA::PriorityModelPolicy ()
00042   , TAO_Local_RefCounted_Object ()
00043   , priority_model_ (rhs.priority_model_)
00044   , server_priority_ (rhs.server_priority_)
00045 {
00046 }
00047 
00048 TAO_PriorityModelPolicy::TAO_PriorityModelPolicy (void)
00049   : priority_model_ (RTCORBA::SERVER_DECLARED),
00050     server_priority_ (0)
00051 {
00052 }
00053 
00054 TAO_PriorityModelPolicy::~TAO_PriorityModelPolicy (void)
00055 {
00056 }
00057 
00058 CORBA::Policy_ptr
00059 TAO_PriorityModelPolicy::create (const CORBA::Any &)
00060 {
00061   /*
00062    * @@ The following code should be changed once the OMG spec has
00063    * been fixed such that a RTCORBA::PriorityModelPolicy can be
00064    * created by using the ORB::create_policy interface.
00065    */
00066   throw ::CORBA::PolicyError (CORBA::BAD_POLICY_VALUE);
00067 }
00068 
00069 RTCORBA::PriorityModel
00070 TAO_PriorityModelPolicy::get_priority_model (void)
00071 {
00072   return this->priority_model_;
00073 }
00074 
00075 RTCORBA::PriorityModel
00076 TAO_PriorityModelPolicy::priority_model (void)
00077 {
00078   return this->priority_model_;
00079 }
00080 
00081 RTCORBA::Priority
00082 TAO_PriorityModelPolicy::server_priority (void)
00083 {
00084   return this->server_priority_;
00085 }
00086 
00087 CORBA::PolicyType
00088 TAO_PriorityModelPolicy::policy_type (void)
00089 {
00090   return RTCORBA::PRIORITY_MODEL_POLICY_TYPE;
00091 }
00092 
00093 CORBA::Policy_ptr
00094 TAO_PriorityModelPolicy::copy (void)
00095 {
00096   TAO_PriorityModelPolicy* tmp = 0;
00097   ACE_NEW_THROW_EX (tmp,
00098                     TAO_PriorityModelPolicy (*this),
00099                     CORBA::NO_MEMORY (TAO::VMCID,
00100                                       CORBA::COMPLETED_NO));
00101 
00102   return tmp;
00103 }
00104 
00105 void
00106 TAO_PriorityModelPolicy::destroy (void)
00107 {
00108 }
00109 
00110 CORBA::Boolean
00111 TAO_PriorityModelPolicy::_tao_encode (TAO_OutputCDR &out_cdr)
00112 {
00113   // Note: the fields are encoded according to
00114   // the order specified in the RTCORBA 1.0 spec (ptc/99-05-03)
00115   // section 4.7.3.
00116 
00117   return ((out_cdr << priority_model_) && (out_cdr << server_priority_));
00118 }
00119 
00120 CORBA::Boolean
00121 TAO_PriorityModelPolicy::_tao_decode (TAO_InputCDR &in_cdr)
00122 {
00123   return ((in_cdr >> priority_model_) && (in_cdr >> server_priority_));
00124 }
00125 
00126 TAO_Cached_Policy_Type
00127 TAO_PriorityModelPolicy::_tao_cached_type (void) const
00128 {
00129   return TAO_CACHED_POLICY_PRIORITY_MODEL;
00130 }
00131 
00132 TAO_Policy_Scope
00133 TAO_PriorityModelPolicy::_tao_scope (void) const
00134 {
00135   // Note that this policy is propogated to the client even though
00136   // it is not specified here.  The reason for this is that the
00137   // server priority field is set dynamically depending on the model
00138   // and the servant's priority.  Therefore, it can't be simply
00139   // copied to the list of client exposed policies.
00140   return static_cast<TAO_Policy_Scope> (TAO_POLICY_ORB_SCOPE |
00141                           TAO_POLICY_POA_SCOPE);
00142 }
00143 
00144 // ****************************************************************
00145 
00146 TAO_ThreadpoolPolicy::TAO_ThreadpoolPolicy (RTCORBA::ThreadpoolId id)
00147   : ::CORBA::Object ()
00148   , ::CORBA::Policy ()
00149   , ::CORBA::LocalObject ()
00150   , RTCORBA::ThreadpoolPolicy ()
00151   , TAO_Local_RefCounted_Object ()
00152   , id_ (id)
00153 {
00154 }
00155 
00156 TAO_ThreadpoolPolicy::TAO_ThreadpoolPolicy (const TAO_ThreadpoolPolicy &rhs)
00157   : ::CORBA::Object ()
00158   , ::CORBA::Policy ()
00159   , ::CORBA::LocalObject ()
00160   , RTCORBA::ThreadpoolPolicy ()
00161   , TAO_Local_RefCounted_Object ()
00162   , id_ (rhs.id_)
00163 {
00164 }
00165 
00166 TAO_ThreadpoolPolicy::~TAO_ThreadpoolPolicy (void)
00167 {
00168 }
00169 
00170 CORBA::Policy_ptr
00171 TAO_ThreadpoolPolicy::create (const CORBA::Any &val
00172                               )
00173 {
00174   RTCORBA::ThreadpoolId value;
00175   if ((val >>= value) == 0)
00176     throw ::CORBA::PolicyError (CORBA::BAD_POLICY_VALUE);
00177 
00178   TAO_ThreadpoolPolicy *tmp = 0;
00179   ACE_NEW_THROW_EX (tmp,
00180                     TAO_ThreadpoolPolicy (value),
00181                     CORBA::NO_MEMORY (TAO::VMCID,
00182                                       CORBA::COMPLETED_NO));
00183 
00184   return tmp;
00185 }
00186 
00187 RTCORBA::ThreadpoolId
00188 TAO_ThreadpoolPolicy::threadpool (void)
00189 {
00190   return this->id_;
00191 }
00192 
00193 CORBA::PolicyType
00194 TAO_ThreadpoolPolicy::policy_type (void)
00195 {
00196   return RTCORBA::THREADPOOL_POLICY_TYPE;
00197 }
00198 
00199 CORBA::Policy_ptr
00200 TAO_ThreadpoolPolicy::copy (void)
00201 {
00202   TAO_ThreadpoolPolicy* tmp = 0;
00203   ACE_NEW_THROW_EX (tmp,
00204                     TAO_ThreadpoolPolicy (*this),
00205                     CORBA::NO_MEMORY (TAO::VMCID,
00206                                       CORBA::COMPLETED_NO));
00207 
00208   return tmp;
00209 }
00210 
00211 void
00212 TAO_ThreadpoolPolicy::destroy (void)
00213 {
00214 }
00215 
00216 TAO_Cached_Policy_Type
00217 TAO_ThreadpoolPolicy::_tao_cached_type (void) const
00218 {
00219   return TAO_CACHED_POLICY_THREADPOOL;
00220 }
00221 
00222 TAO_Policy_Scope
00223 TAO_ThreadpoolPolicy::_tao_scope (void) const
00224 {
00225   return static_cast<TAO_Policy_Scope> (TAO_POLICY_ORB_SCOPE |
00226                           TAO_POLICY_POA_SCOPE);
00227 }
00228 
00229 // ****************************************************************
00230 
00231 TAO_PrivateConnectionPolicy::TAO_PrivateConnectionPolicy (void)
00232   : ::CORBA::Object ()
00233   , ::CORBA::Policy ()
00234   , ::CORBA::LocalObject ()
00235   , RTCORBA::PrivateConnectionPolicy ()
00236   , TAO_Local_RefCounted_Object ()
00237 {
00238 }
00239 
00240 TAO_PrivateConnectionPolicy::TAO_PrivateConnectionPolicy (const TAO_PrivateConnectionPolicy &)
00241   : ::CORBA::Object ()
00242   , ::CORBA::Policy ()
00243   , ::CORBA::LocalObject ()
00244   , RTCORBA::PrivateConnectionPolicy ()
00245   , TAO_Local_RefCounted_Object ()
00246 {
00247 }
00248 
00249 TAO_PrivateConnectionPolicy::~TAO_PrivateConnectionPolicy (void)
00250 {
00251 }
00252 
00253 CORBA::Policy_ptr
00254 TAO_PrivateConnectionPolicy::create (const CORBA::Any &)
00255 {
00256   TAO_PrivateConnectionPolicy *tmp = 0;
00257   ACE_NEW_THROW_EX (tmp,
00258                     TAO_PrivateConnectionPolicy (),
00259                     CORBA::NO_MEMORY (TAO::VMCID,
00260                                       CORBA::COMPLETED_NO));
00261 
00262   return tmp;
00263 }
00264 
00265 CORBA::PolicyType
00266 TAO_PrivateConnectionPolicy::policy_type (void)
00267 {
00268   return RTCORBA::PRIVATE_CONNECTION_POLICY_TYPE;
00269 }
00270 
00271 CORBA::Policy_ptr
00272 TAO_PrivateConnectionPolicy::copy (void)
00273 {
00274   TAO_PrivateConnectionPolicy* tmp = 0;
00275   ACE_NEW_THROW_EX (tmp,
00276                     TAO_PrivateConnectionPolicy (*this),
00277                     CORBA::NO_MEMORY (TAO::VMCID,
00278                                       CORBA::COMPLETED_NO));
00279 
00280   return tmp;
00281 }
00282 
00283 void
00284 TAO_PrivateConnectionPolicy::destroy (void)
00285 {
00286 }
00287 
00288 TAO_Cached_Policy_Type
00289 TAO_PrivateConnectionPolicy::_tao_cached_type (void) const
00290 {
00291   return TAO_CACHED_POLICY_RT_PRIVATE_CONNECTION;
00292 }
00293 
00294 TAO_Policy_Scope
00295 TAO_PrivateConnectionPolicy::_tao_scope (void) const
00296 {
00297   return static_cast<TAO_Policy_Scope> (TAO_POLICY_OBJECT_SCOPE |
00298                           TAO_POLICY_THREAD_SCOPE |
00299                           TAO_POLICY_ORB_SCOPE);
00300 }
00301 
00302 // ****************************************************************
00303 
00304 TAO_PriorityBandedConnectionPolicy::TAO_PriorityBandedConnectionPolicy (const RTCORBA::PriorityBands &bands)
00305   : ::CORBA::Object ()
00306   , ::CORBA::Policy ()
00307   , ::CORBA::LocalObject ()
00308   , RTCORBA::PriorityBandedConnectionPolicy ()
00309   , TAO_Local_RefCounted_Object ()
00310   , priority_bands_ (bands)
00311 {
00312 }
00313 
00314 TAO_PriorityBandedConnectionPolicy::TAO_PriorityBandedConnectionPolicy (const TAO_PriorityBandedConnectionPolicy &rhs)
00315   : ::CORBA::Object ()
00316   , ::CORBA::Policy ()
00317   , ::CORBA::LocalObject ()
00318   , RTCORBA::PriorityBandedConnectionPolicy ()
00319   , TAO_Local_RefCounted_Object ()
00320   , priority_bands_ (rhs.priority_bands_)
00321 {
00322 }
00323 
00324 TAO_PriorityBandedConnectionPolicy::TAO_PriorityBandedConnectionPolicy (void)
00325 {
00326 }
00327 
00328 TAO_PriorityBandedConnectionPolicy::~TAO_PriorityBandedConnectionPolicy (void)
00329 {
00330 }
00331 
00332 CORBA::Policy_ptr
00333 TAO_PriorityBandedConnectionPolicy::create (const CORBA::Any &val)
00334 {
00335   RTCORBA::PriorityBands *value = 0;
00336   if ((val >>= value) == 0)
00337     throw ::CORBA::PolicyError (CORBA::BAD_POLICY_VALUE);
00338 
00339   TAO_PriorityBandedConnectionPolicy *tmp = 0;
00340   ACE_NEW_THROW_EX (tmp,
00341                     TAO_PriorityBandedConnectionPolicy (*value),
00342                     CORBA::NO_MEMORY (TAO::VMCID,
00343                                       CORBA::COMPLETED_NO));
00344 
00345   return tmp;
00346 }
00347 
00348 RTCORBA::PriorityBands *
00349 TAO_PriorityBandedConnectionPolicy::priority_bands (void)
00350 {
00351   RTCORBA::PriorityBands *tmp;
00352   ACE_NEW_THROW_EX (tmp,
00353                     RTCORBA::PriorityBands (this->priority_bands_),
00354                     CORBA::NO_MEMORY (TAO::VMCID,
00355                                       CORBA::COMPLETED_NO));
00356 
00357   return tmp;
00358 }
00359 
00360 CORBA::PolicyType
00361 TAO_PriorityBandedConnectionPolicy::policy_type (void)
00362 {
00363   return RTCORBA::PRIORITY_BANDED_CONNECTION_POLICY_TYPE;
00364 }
00365 
00366 CORBA::Policy_ptr
00367 TAO_PriorityBandedConnectionPolicy::copy (void)
00368 {
00369   TAO_PriorityBandedConnectionPolicy *tmp = 0;
00370   ACE_NEW_THROW_EX (tmp,
00371                     TAO_PriorityBandedConnectionPolicy (*this),
00372                     CORBA::NO_MEMORY (TAO::VMCID,
00373                                       CORBA::COMPLETED_NO));
00374 
00375   return tmp;
00376 }
00377 
00378 void
00379 TAO_PriorityBandedConnectionPolicy::destroy (void)
00380 {
00381 }
00382 
00383 CORBA::Boolean
00384 TAO_PriorityBandedConnectionPolicy::_tao_encode (TAO_OutputCDR &out_cdr)
00385 {
00386   return out_cdr << priority_bands_;
00387 }
00388 
00389 CORBA::Boolean
00390 TAO_PriorityBandedConnectionPolicy::_tao_decode (TAO_InputCDR &in_cdr)
00391 {
00392   return in_cdr >> priority_bands_;
00393 }
00394 
00395 TAO_Cached_Policy_Type
00396 TAO_PriorityBandedConnectionPolicy::_tao_cached_type (void) const
00397 {
00398   return TAO_CACHED_POLICY_RT_PRIORITY_BANDED_CONNECTION;
00399 }
00400 
00401 TAO_Policy_Scope
00402 TAO_PriorityBandedConnectionPolicy::_tao_scope (void) const
00403 {
00404   return static_cast<TAO_Policy_Scope> (TAO_POLICY_DEFAULT_SCOPE |
00405                           TAO_POLICY_CLIENT_EXPOSED);
00406 }
00407 
00408 RTCORBA::PriorityBands &
00409 TAO_PriorityBandedConnectionPolicy::priority_bands_rep (void)
00410 {
00411   return priority_bands_;
00412 }
00413 
00414 // ****************************************************************
00415 
00416 TAO_ServerProtocolPolicy::TAO_ServerProtocolPolicy (const RTCORBA::ProtocolList &protocols)
00417   : ::CORBA::Object ()
00418   , ::CORBA::Policy ()
00419   , ::CORBA::LocalObject ()
00420   , RTCORBA::ServerProtocolPolicy ()
00421   , TAO_Local_RefCounted_Object ()
00422   , protocols_ (protocols)
00423 {
00424 }
00425 
00426 TAO_ServerProtocolPolicy::TAO_ServerProtocolPolicy (const TAO_ServerProtocolPolicy &rhs)
00427   : ::CORBA::Object ()
00428   , ::CORBA::Policy ()
00429   , ::CORBA::LocalObject ()
00430   , RTCORBA::ServerProtocolPolicy ()
00431   , TAO_Local_RefCounted_Object ()
00432   , protocols_ (rhs.protocols_)
00433 {
00434 }
00435 
00436 TAO_ServerProtocolPolicy::~TAO_ServerProtocolPolicy (void)
00437 {
00438 }
00439 
00440 CORBA::Policy_ptr
00441 TAO_ServerProtocolPolicy::create (const CORBA::Any &val)
00442 {
00443   RTCORBA::ProtocolList *value = 0;
00444   if ((val >>= value) == 0)
00445     throw ::CORBA::PolicyError (CORBA::BAD_POLICY_VALUE);
00446 
00447   TAO_ServerProtocolPolicy *tmp = 0;
00448   ACE_NEW_THROW_EX (tmp,
00449                     TAO_ServerProtocolPolicy (*value),
00450                     CORBA::NO_MEMORY (TAO::VMCID,
00451                                       CORBA::COMPLETED_NO));
00452 
00453   return tmp;
00454 }
00455 
00456 RTCORBA::ProtocolList *
00457 TAO_ServerProtocolPolicy::protocols (void)
00458 {
00459   RTCORBA::ProtocolList *tmp = 0;
00460   ACE_NEW_THROW_EX (tmp,
00461                     RTCORBA::ProtocolList (this->protocols_),
00462                     CORBA::NO_MEMORY (TAO::VMCID,
00463                                       CORBA::COMPLETED_NO));
00464 
00465   return tmp;
00466 }
00467 
00468 CORBA::PolicyType
00469 TAO_ServerProtocolPolicy::policy_type (void)
00470 {
00471   return RTCORBA::SERVER_PROTOCOL_POLICY_TYPE;
00472 }
00473 
00474 CORBA::Policy_ptr
00475 TAO_ServerProtocolPolicy::copy (void)
00476 {
00477   TAO_ServerProtocolPolicy* tmp = 0;
00478   ACE_NEW_THROW_EX (tmp,
00479                     TAO_ServerProtocolPolicy (*this),
00480                     CORBA::NO_MEMORY (TAO::VMCID,
00481                                       CORBA::COMPLETED_NO));
00482 
00483   return tmp;
00484 }
00485 
00486 void
00487 TAO_ServerProtocolPolicy::destroy (void)
00488 {
00489 }
00490 
00491 TAO_Cached_Policy_Type
00492 TAO_ServerProtocolPolicy::_tao_cached_type (void) const
00493 {
00494   return TAO_CACHED_POLICY_RT_SERVER_PROTOCOL;
00495 }
00496 
00497 TAO_Policy_Scope
00498 TAO_ServerProtocolPolicy::_tao_scope (void) const
00499 {
00500   return static_cast<TAO_Policy_Scope> (TAO_POLICY_ORB_SCOPE |
00501                           TAO_POLICY_POA_SCOPE);
00502 }
00503 
00504 RTCORBA::ProtocolList &
00505 TAO_ServerProtocolPolicy::protocols_rep (void)
00506 {
00507   return protocols_;
00508 }
00509 
00510 // ****************************************************************
00511 
00512 TAO_ClientProtocolPolicy::TAO_ClientProtocolPolicy (void)
00513 {
00514 }
00515 
00516 
00517 TAO_ClientProtocolPolicy::TAO_ClientProtocolPolicy (const RTCORBA::ProtocolList &protocols)
00518   : ::CORBA::Object ()
00519   , ::CORBA::Policy ()
00520   , ::CORBA::LocalObject ()
00521   , RTCORBA::ClientProtocolPolicy ()
00522   , TAO_Local_RefCounted_Object ()
00523   , protocols_ (protocols)
00524 {
00525 }
00526 
00527 TAO_ClientProtocolPolicy::TAO_ClientProtocolPolicy (const TAO_ClientProtocolPolicy &rhs)
00528   : ::CORBA::Object ()
00529   , ::CORBA::Policy ()
00530   , ::CORBA::LocalObject ()
00531   , RTCORBA::ClientProtocolPolicy ()
00532   , TAO_Local_RefCounted_Object ()
00533   , protocols_ (rhs.protocols_)
00534 {
00535 }
00536 
00537 TAO_ClientProtocolPolicy::~TAO_ClientProtocolPolicy ()
00538 {
00539 }
00540 
00541 CORBA::Policy_ptr
00542 TAO_ClientProtocolPolicy::create (const CORBA::Any &val
00543                                   )
00544 {
00545   RTCORBA::ProtocolList *value = 0;
00546   if ((val >>= value) == 0)
00547     throw ::CORBA::PolicyError (CORBA::BAD_POLICY_VALUE);
00548 
00549   TAO_ClientProtocolPolicy *tmp = 0;
00550   ACE_NEW_THROW_EX (tmp,
00551                     TAO_ClientProtocolPolicy (*value),
00552                     CORBA::NO_MEMORY (TAO::VMCID,
00553                                       CORBA::COMPLETED_NO));
00554 
00555   return tmp;
00556 }
00557 
00558 RTCORBA::ProtocolList *
00559 TAO_ClientProtocolPolicy::protocols (void)
00560 {
00561   RTCORBA::ProtocolList *tmp = 0;
00562   ACE_NEW_THROW_EX (tmp,
00563                     RTCORBA::ProtocolList (this->protocols_),
00564                     CORBA::NO_MEMORY (TAO::VMCID,
00565                                       CORBA::COMPLETED_NO));
00566 
00567   return tmp;
00568 }
00569 
00570 CORBA::PolicyType
00571 TAO_ClientProtocolPolicy::policy_type (void)
00572 {
00573   return RTCORBA::CLIENT_PROTOCOL_POLICY_TYPE;
00574 }
00575 
00576 CORBA::Policy_ptr
00577 TAO_ClientProtocolPolicy::copy (void)
00578 {
00579   TAO_ClientProtocolPolicy* tmp = 0;
00580   ACE_NEW_THROW_EX (tmp,
00581                     TAO_ClientProtocolPolicy (*this),
00582                     CORBA::NO_MEMORY (TAO::VMCID,
00583                                       CORBA::COMPLETED_NO));
00584 
00585   return tmp;
00586 }
00587 
00588 void
00589 TAO_ClientProtocolPolicy::destroy (void)
00590 {
00591 }
00592 
00593 TAO_Cached_Policy_Type
00594 TAO_ClientProtocolPolicy::_tao_cached_type (void) const
00595 {
00596   return TAO_CACHED_POLICY_RT_CLIENT_PROTOCOL;
00597 }
00598 
00599 TAO_Policy_Scope
00600 TAO_ClientProtocolPolicy::_tao_scope (void) const
00601 {
00602   return static_cast<TAO_Policy_Scope> (TAO_POLICY_DEFAULT_SCOPE |
00603                           TAO_POLICY_CLIENT_EXPOSED);
00604 }
00605 
00606 CORBA::Boolean
00607 TAO_ClientProtocolPolicy::_tao_encode (TAO_OutputCDR &out_cdr)
00608 {
00609   CORBA::Boolean is_write_ok = out_cdr << this->protocols_.length ();
00610 
00611   for (CORBA::ULong i = 0;
00612        (i < this->protocols_.length ()) && is_write_ok;
00613        i++)
00614     {
00615       is_write_ok =
00616         (out_cdr << this->protocols_[i].protocol_type)
00617         &&
00618         this->protocols_[i].orb_protocol_properties->_tao_encode (out_cdr)
00619         &&
00620         this->protocols_[i].transport_protocol_properties->_tao_encode (out_cdr);
00621     }
00622 
00623   return is_write_ok;
00624 }
00625 
00626 CORBA::Boolean
00627 TAO_ClientProtocolPolicy::_tao_decode (TAO_InputCDR &in_cdr)
00628 {
00629   CORBA::ULong length;
00630   CORBA::Boolean is_read_ok = in_cdr >> length;
00631 
00632   this->protocols_.length (length);
00633 
00634   for (CORBA::ULong i = 0; (i < length) && is_read_ok; i++)
00635     {
00636       is_read_ok = in_cdr >> this->protocols_[i].protocol_type;
00637 
00638       this->protocols_[i].orb_protocol_properties =
00639         TAO_Protocol_Properties_Factory::create_orb_protocol_property
00640         (this->protocols_[i].protocol_type);
00641 
00642       this->protocols_[i].transport_protocol_properties =
00643         TAO_Protocol_Properties_Factory::create_transport_protocol_property
00644         (this->protocols_[i].protocol_type, in_cdr.orb_core ());
00645 
00646       if (is_read_ok
00647           && (this->protocols_[i].orb_protocol_properties.ptr () != 0))
00648         is_read_ok =
00649           this->protocols_[i].orb_protocol_properties->_tao_decode (in_cdr);
00650 
00651       if (is_read_ok
00652           && (this->protocols_[i].transport_protocol_properties.ptr () != 0))
00653         is_read_ok =
00654           this->protocols_[i].transport_protocol_properties->_tao_decode (in_cdr);
00655 
00656     }
00657 
00658   return is_read_ok;
00659 }
00660 
00661 RTCORBA::ProtocolList &
00662 TAO_ClientProtocolPolicy::protocols_rep (void)
00663 {
00664   return protocols_;
00665 }
00666 
00667 // ****************************************************************
00668 
00669 TAO_TCP_Protocol_Properties::TAO_TCP_Protocol_Properties (CORBA::Long send_buffer_size,
00670                                                           CORBA::Long recv_buffer_size,
00671                                                           CORBA::Boolean keep_alive,
00672                                                           CORBA::Boolean dont_route,
00673                                                           CORBA::Boolean no_delay,
00674                                                           CORBA::Boolean enable_network_priority)
00675   : send_buffer_size_ (send_buffer_size),
00676     recv_buffer_size_ (recv_buffer_size),
00677     keep_alive_ (keep_alive),
00678     dont_route_ (dont_route),
00679     no_delay_ (no_delay),
00680     enable_network_priority_ (enable_network_priority)
00681 {
00682 }
00683 
00684 TAO_TCP_Protocol_Properties::~TAO_TCP_Protocol_Properties (void)
00685 {
00686 }
00687 
00688 CORBA::Long
00689 TAO_TCP_Protocol_Properties::send_buffer_size (void)
00690 {
00691   return this->send_buffer_size_;
00692 }
00693 
00694 void
00695 TAO_TCP_Protocol_Properties::send_buffer_size (CORBA::Long send_buffer_size)
00696 {
00697   this->send_buffer_size_ = send_buffer_size;
00698 }
00699 
00700 CORBA::Long
00701 TAO_TCP_Protocol_Properties::recv_buffer_size (void)
00702 {
00703   return this->recv_buffer_size_;
00704 }
00705 
00706 void
00707 TAO_TCP_Protocol_Properties::recv_buffer_size (CORBA::Long recv_buffer_size)
00708 {
00709   this->recv_buffer_size_ = recv_buffer_size;
00710 }
00711 
00712 CORBA::Boolean
00713 TAO_TCP_Protocol_Properties::keep_alive (void)
00714 {
00715   return this->keep_alive_;
00716 }
00717 
00718 void
00719 TAO_TCP_Protocol_Properties::keep_alive (CORBA::Boolean keep_alive)
00720 {
00721   this->keep_alive_ = keep_alive;
00722 }
00723 
00724 CORBA::Boolean
00725 TAO_TCP_Protocol_Properties::dont_route (void)
00726 {
00727   return this->dont_route_;
00728 }
00729 
00730 void
00731 TAO_TCP_Protocol_Properties::dont_route (CORBA::Boolean dont_route
00732                                          )
00733 {
00734   this->dont_route_ = dont_route;
00735 }
00736 
00737 CORBA::Boolean TAO_TCP_Protocol_Properties::no_delay (void)
00738 {
00739   return this->no_delay_;
00740 }
00741 
00742 void
00743 TAO_TCP_Protocol_Properties::no_delay (CORBA::Boolean no_delay
00744                                        )
00745 {
00746   this->no_delay_ = no_delay;
00747 }
00748 
00749 CORBA::Boolean
00750 TAO_TCP_Protocol_Properties::enable_network_priority (void)
00751 {
00752   return this->enable_network_priority_;
00753 }
00754 
00755 void
00756 TAO_TCP_Protocol_Properties::enable_network_priority (CORBA::Boolean enable
00757                                                       )
00758 {
00759   this->enable_network_priority_ = enable;
00760 }
00761 
00762 CORBA::Boolean
00763 TAO_TCP_Protocol_Properties::_tao_encode (TAO_OutputCDR & out_cdr)
00764 {
00765   return ((out_cdr << this->send_buffer_size_)
00766           &&
00767           (out_cdr << this->recv_buffer_size_)
00768           &&
00769           (out_cdr.write_boolean (this->keep_alive_))
00770           &&
00771           (out_cdr.write_boolean (this->dont_route_))
00772           &&
00773           (out_cdr.write_boolean (this->no_delay_)));
00774 }
00775 
00776 CORBA::Boolean
00777 TAO_TCP_Protocol_Properties::_tao_decode (TAO_InputCDR &in_cdr)
00778 {
00779   return ((in_cdr >> this->send_buffer_size_)
00780           &&
00781           (in_cdr >> this->recv_buffer_size_)
00782           &&
00783           (in_cdr.read_boolean (this->keep_alive_))
00784           &&
00785           (in_cdr.read_boolean (this->dont_route_))
00786           &&
00787           (in_cdr.read_boolean (this->no_delay_)));
00788 }
00789 
00790 // ****************************************************************
00791 
00792 TAO_UnixDomain_Protocol_Properties::TAO_UnixDomain_Protocol_Properties
00793 (CORBA::Long send_buffer_size,
00794  CORBA::Long recv_buffer_size)
00795   : send_buffer_size_ (send_buffer_size),
00796     recv_buffer_size_ (recv_buffer_size)
00797 {
00798 }
00799 
00800 TAO_UnixDomain_Protocol_Properties::~TAO_UnixDomain_Protocol_Properties (void)
00801 {
00802 }
00803 
00804 CORBA::Long
00805 TAO_UnixDomain_Protocol_Properties::send_buffer_size (void)
00806 {
00807   return this->send_buffer_size_;
00808 }
00809 
00810 void
00811 TAO_UnixDomain_Protocol_Properties::send_buffer_size (CORBA::Long send_buffer_size
00812                                                       )
00813 {
00814   this->send_buffer_size_ = send_buffer_size;
00815 }
00816 
00817 CORBA::Long
00818 TAO_UnixDomain_Protocol_Properties::recv_buffer_size (void)
00819 {
00820   return this->recv_buffer_size_;
00821 }
00822 
00823 void
00824 TAO_UnixDomain_Protocol_Properties::recv_buffer_size (CORBA::Long recv_buffer_size
00825                                                       )
00826 {
00827   this->recv_buffer_size_ = recv_buffer_size;
00828 }
00829 
00830 CORBA::Boolean
00831 TAO_UnixDomain_Protocol_Properties::_tao_encode (TAO_OutputCDR &out_cdr)
00832 {
00833   return ((out_cdr << this->send_buffer_size_)
00834           && (out_cdr << this->recv_buffer_size_));
00835 }
00836 
00837 CORBA::Boolean
00838 TAO_UnixDomain_Protocol_Properties::_tao_decode (TAO_InputCDR &in_cdr)
00839 {
00840   return ((in_cdr >> this->send_buffer_size_)
00841           && (in_cdr >> this->recv_buffer_size_));
00842 }
00843 
00844 // ****************************************************************
00845 
00846 TAO_SharedMemory_Protocol_Properties::TAO_SharedMemory_Protocol_Properties (CORBA::Long send_buffer_size,
00847                                                                             CORBA::Long recv_buffer_size,
00848                                                                             CORBA::Boolean keep_alive,
00849                                                                             CORBA::Boolean dont_route,
00850                                                                             CORBA::Boolean no_delay,
00851                                                                             CORBA::Long preallocate_buffer_size,
00852                                                                             const char *mmap_filename,
00853                                                                             const char *mmap_lockname)
00854   : send_buffer_size_ (send_buffer_size),
00855     recv_buffer_size_ (recv_buffer_size),
00856     keep_alive_ (keep_alive),
00857     dont_route_ (dont_route),
00858     no_delay_ (no_delay),
00859     preallocate_buffer_size_ (preallocate_buffer_size),
00860     mmap_filename_ (mmap_filename),
00861     mmap_lockname_ (mmap_lockname)
00862 {
00863 }
00864 
00865 TAO_SharedMemory_Protocol_Properties::~TAO_SharedMemory_Protocol_Properties (void)
00866 {
00867 }
00868 
00869 
00870 CORBA::Long
00871 TAO_SharedMemory_Protocol_Properties::send_buffer_size (void)
00872 {
00873   return this->send_buffer_size_;
00874 }
00875 
00876 void
00877 TAO_SharedMemory_Protocol_Properties::send_buffer_size (CORBA::Long send_buffer_size
00878                                                         )
00879 {
00880   this->send_buffer_size_ = send_buffer_size;
00881 }
00882 
00883 CORBA::Long
00884 TAO_SharedMemory_Protocol_Properties::recv_buffer_size (void)
00885 {
00886   return this->recv_buffer_size_;
00887 }
00888 
00889 void
00890 TAO_SharedMemory_Protocol_Properties::recv_buffer_size (CORBA::Long recv_buffer_size
00891                                                         )
00892 {
00893   this->recv_buffer_size_ = recv_buffer_size;
00894 }
00895 
00896 CORBA::Boolean
00897 TAO_SharedMemory_Protocol_Properties::keep_alive (void)
00898 {
00899   return this->keep_alive_;
00900 }
00901 
00902 void
00903 TAO_SharedMemory_Protocol_Properties::keep_alive (CORBA::Boolean keep_alive
00904                                                   )
00905 {
00906   this->keep_alive_ = keep_alive;
00907 }
00908 
00909 CORBA::Boolean
00910 TAO_SharedMemory_Protocol_Properties::dont_route (void)
00911 {
00912   return this->dont_route_;
00913 }
00914 
00915 void
00916 TAO_SharedMemory_Protocol_Properties::dont_route (CORBA::Boolean dont_route
00917                                                   )
00918 {
00919   this->dont_route_ = dont_route;
00920 }
00921 
00922 CORBA::Boolean
00923 TAO_SharedMemory_Protocol_Properties::no_delay (void)
00924 {
00925   return this->no_delay_;
00926 }
00927 
00928 void
00929 TAO_SharedMemory_Protocol_Properties::no_delay (CORBA::Boolean no_delay
00930                                                 )
00931 {
00932   this->no_delay_ = no_delay;
00933 }
00934 
00935 CORBA::Long
00936 TAO_SharedMemory_Protocol_Properties::preallocate_buffer_size (void)
00937 {
00938   return this->preallocate_buffer_size_;
00939 }
00940 
00941 void
00942 TAO_SharedMemory_Protocol_Properties::preallocate_buffer_size (CORBA::Long preallocate_buffer_size
00943                                                                )
00944 {
00945   this->preallocate_buffer_size_ = preallocate_buffer_size;
00946 }
00947 
00948 char *
00949 TAO_SharedMemory_Protocol_Properties::mmap_filename (void)
00950 {
00951   return this->mmap_filename_.rep ();
00952 }
00953 
00954 void
00955 TAO_SharedMemory_Protocol_Properties::mmap_filename (const char * mmap_filename
00956                                                      )
00957 {
00958   this->mmap_filename_.set (mmap_filename);
00959 }
00960 
00961 char *
00962 TAO_SharedMemory_Protocol_Properties::mmap_lockname (void)
00963 {
00964   return this->mmap_lockname_.rep ();
00965 }
00966 
00967 void
00968 TAO_SharedMemory_Protocol_Properties::mmap_lockname (const char * mmap_lockname
00969                                                      )
00970 {
00971   this->mmap_lockname_.set (mmap_lockname);
00972 }
00973 
00974 CORBA::Boolean
00975 TAO_SharedMemory_Protocol_Properties::_tao_encode (TAO_OutputCDR &out_cdr)
00976 {
00977   return ((out_cdr << this->send_buffer_size_)
00978           &&
00979           (out_cdr << this->recv_buffer_size_)
00980           &&
00981           (out_cdr.write_boolean (this->keep_alive_))
00982           &&
00983           (out_cdr.write_boolean (this->dont_route_))
00984           &&
00985           (out_cdr.write_boolean (this->no_delay_))
00986           &&
00987           (out_cdr << this->preallocate_buffer_size_)
00988           &&
00989           (out_cdr << this->mmap_filename_)
00990           &&
00991           (out_cdr << this->mmap_lockname_));
00992 }
00993 
00994 CORBA::Boolean
00995 TAO_SharedMemory_Protocol_Properties::_tao_decode (TAO_InputCDR &in_cdr)
00996 {
00997   return ((in_cdr >> this->send_buffer_size_)
00998           &&
00999           (in_cdr >> this->recv_buffer_size_)
01000           &&
01001           (in_cdr.read_boolean (this->keep_alive_))
01002           &&
01003           (in_cdr.read_boolean (this->dont_route_))
01004           &&
01005           (in_cdr.read_boolean (this->no_delay_))
01006           &&
01007           (in_cdr >> this->preallocate_buffer_size_)
01008           &&
01009           (in_cdr >> this->mmap_filename_)
01010           &&
01011           (in_cdr >> this->mmap_lockname_));
01012 }
01013 
01014 // ****************************************************************
01015 
01016 TAO_UserDatagram_Protocol_Properties::TAO_UserDatagram_Protocol_Properties (
01017   CORBA::Long send_buffer_size,
01018   CORBA::Long recv_buffer_size,
01019   CORBA::Boolean enable_network_priority)
01020   : send_buffer_size_ (send_buffer_size),
01021     recv_buffer_size_ (recv_buffer_size),
01022     enable_network_priority_ (enable_network_priority)
01023 {
01024 }
01025 
01026 TAO_UserDatagram_Protocol_Properties::~TAO_UserDatagram_Protocol_Properties (void)
01027 {
01028 }
01029 
01030 CORBA::Boolean
01031 TAO_UserDatagram_Protocol_Properties::enable_network_priority (void)
01032 {
01033   return this->enable_network_priority_;
01034 }
01035 
01036 void
01037 TAO_UserDatagram_Protocol_Properties::enable_network_priority (CORBA::Boolean enable)
01038 {
01039   this->enable_network_priority_ = enable;
01040 }
01041 
01042 CORBA::Long
01043 TAO_UserDatagram_Protocol_Properties::send_buffer_size (void)
01044 {
01045   return this->send_buffer_size_;
01046 }
01047 
01048 void
01049 TAO_UserDatagram_Protocol_Properties::send_buffer_size (CORBA::Long send_buffer_size)
01050 {
01051   this->send_buffer_size_ = send_buffer_size;
01052 }
01053 
01054 CORBA::Long
01055 TAO_UserDatagram_Protocol_Properties::recv_buffer_size (void)
01056 {
01057   return this->recv_buffer_size_;
01058 }
01059 
01060 void
01061 TAO_UserDatagram_Protocol_Properties::recv_buffer_size (CORBA::Long recv_buffer_size)
01062 {
01063   this->recv_buffer_size_ = recv_buffer_size;
01064 }
01065 
01066 CORBA::Boolean
01067 TAO_UserDatagram_Protocol_Properties::_tao_encode (TAO_OutputCDR &)
01068 {
01069   return true;
01070 }
01071 
01072 CORBA::Boolean
01073 TAO_UserDatagram_Protocol_Properties::_tao_decode (TAO_InputCDR &)
01074 {
01075   return true;
01076 }
01077 
01078 // ****************************************************************
01079 
01080 TAO_StreamControl_Protocol_Properties::TAO_StreamControl_Protocol_Properties (CORBA::Long send_buffer_size,
01081                                                                               CORBA::Long recv_buffer_size,
01082                                                                               CORBA::Boolean keep_alive,
01083                                                                               CORBA::Boolean dont_route,
01084                                                                               CORBA::Boolean no_delay,
01085                                                                               CORBA::Boolean enable_network_priority)
01086   : send_buffer_size_ (send_buffer_size),
01087     recv_buffer_size_ (recv_buffer_size),
01088     keep_alive_ (keep_alive),
01089     dont_route_ (dont_route),
01090     no_delay_ (no_delay),
01091     enable_network_priority_ (enable_network_priority)
01092 {
01093 }
01094 
01095 TAO_StreamControl_Protocol_Properties::~TAO_StreamControl_Protocol_Properties (void)
01096 {
01097 }
01098 
01099 CORBA::Long
01100 TAO_StreamControl_Protocol_Properties::send_buffer_size (void)
01101 {
01102   return this->send_buffer_size_;
01103 }
01104 
01105 void
01106 TAO_StreamControl_Protocol_Properties::send_buffer_size (CORBA::Long send_buffer_size)
01107 {
01108   this->send_buffer_size_ = send_buffer_size;
01109 }
01110 
01111 CORBA::Long
01112 TAO_StreamControl_Protocol_Properties::recv_buffer_size (void)
01113 {
01114   return this->recv_buffer_size_;
01115 }
01116 
01117 void
01118 TAO_StreamControl_Protocol_Properties::recv_buffer_size (CORBA::Long recv_buffer_size
01119                                                          )
01120 {
01121   this->recv_buffer_size_ = recv_buffer_size;
01122 }
01123 
01124 CORBA::Boolean
01125 TAO_StreamControl_Protocol_Properties::keep_alive (void)
01126 {
01127   return this->keep_alive_;
01128 }
01129 
01130 void
01131 TAO_StreamControl_Protocol_Properties::keep_alive (CORBA::Boolean keep_alive
01132                                                    )
01133 {
01134   this->keep_alive_ = keep_alive;
01135 }
01136 
01137 CORBA::Boolean
01138 TAO_StreamControl_Protocol_Properties::dont_route (void)
01139 {
01140   return this->dont_route_;
01141 }
01142 
01143 void
01144 TAO_StreamControl_Protocol_Properties::dont_route (CORBA::Boolean dont_route
01145                                                    )
01146 {
01147   this->dont_route_ = dont_route;
01148 }
01149 
01150 CORBA::Boolean TAO_StreamControl_Protocol_Properties::no_delay (void)
01151 {
01152   return this->no_delay_;
01153 }
01154 
01155 void
01156 TAO_StreamControl_Protocol_Properties::no_delay (CORBA::Boolean no_delay
01157                                                  )
01158 {
01159   this->no_delay_ = no_delay;
01160 }
01161 
01162 CORBA::Boolean
01163 TAO_StreamControl_Protocol_Properties::enable_network_priority (void)
01164 {
01165   return this->enable_network_priority_;
01166 }
01167 
01168 void
01169 TAO_StreamControl_Protocol_Properties::enable_network_priority (CORBA::Boolean enable
01170                                                                 )
01171 {
01172   this->enable_network_priority_ = enable;
01173 }
01174 
01175 CORBA::Boolean
01176 TAO_StreamControl_Protocol_Properties::_tao_encode (TAO_OutputCDR & out_cdr)
01177 {
01178   return ((out_cdr << this->send_buffer_size_)
01179           &&
01180           (out_cdr << this->recv_buffer_size_)
01181           &&
01182           (out_cdr.write_boolean (this->keep_alive_))
01183           &&
01184           (out_cdr.write_boolean (this->dont_route_))
01185           &&
01186           (out_cdr.write_boolean (this->no_delay_)));
01187 }
01188 
01189 CORBA::Boolean
01190 TAO_StreamControl_Protocol_Properties::_tao_decode (TAO_InputCDR &in_cdr)
01191 {
01192   return ((in_cdr >> this->send_buffer_size_)
01193           &&
01194           (in_cdr >> this->recv_buffer_size_)
01195           &&
01196           (in_cdr.read_boolean (this->keep_alive_))
01197           &&
01198           (in_cdr.read_boolean (this->dont_route_))
01199           &&
01200           (in_cdr.read_boolean (this->no_delay_)));
01201 }
01202 
01203 // ****************************************************************
01204 
01205 TAO_GIOP_Protocol_Properties::TAO_GIOP_Protocol_Properties (void)
01206 {
01207 }
01208 
01209 TAO_GIOP_Protocol_Properties::~TAO_GIOP_Protocol_Properties (void)
01210 {
01211 }
01212 
01213 CORBA::Boolean
01214 TAO_GIOP_Protocol_Properties::_tao_encode (TAO_OutputCDR &)
01215 {
01216   return 1;
01217 }
01218 
01219 CORBA::Boolean
01220 TAO_GIOP_Protocol_Properties::_tao_decode (TAO_InputCDR &)
01221 {
01222   return 1;
01223 }
01224 
01225 // ****************************************************************
01226 
01227 RTCORBA::ProtocolProperties *
01228 TAO_Protocol_Properties_Factory::create_transport_protocol_property (IOP::ProfileId id,
01229                                                                      TAO_ORB_Core *orb_core)
01230 {
01231   RTCORBA::ProtocolProperties* property = 0;
01232 
01233   if (id == IOP::TAG_INTERNET_IOP)
01234     {
01235       int send_buffer_size = orb_core ? orb_core->orb_params ()->sock_sndbuf_size () : 0;
01236       int recv_buffer_size = orb_core ? orb_core->orb_params ()->sock_rcvbuf_size () : 0;
01237       int no_delay = orb_core ? orb_core->orb_params ()->nodelay () : 0;
01238       CORBA::Boolean keep_alive = true;
01239       CORBA::Boolean dont_route = false;
01240       CORBA::Boolean enable_network_priority = false;
01241 
01242       ACE_NEW_RETURN (property,
01243                       TAO_TCP_Protocol_Properties (send_buffer_size,
01244                                                    recv_buffer_size,
01245                                                    keep_alive,
01246                                                    dont_route,
01247                                                    no_delay,
01248                                                    enable_network_priority),
01249                       0);
01250     }
01251 
01252   else if (id == TAO_TAG_SHMEM_PROFILE)
01253     {
01254       int send_buffer_size = orb_core ? orb_core->orb_params ()->sock_sndbuf_size () : 0;
01255       int recv_buffer_size = orb_core ? orb_core->orb_params ()->sock_rcvbuf_size () : 0;
01256       int no_delay = orb_core ? orb_core->orb_params ()->nodelay () : 0;
01257       CORBA::Boolean keep_alive = true;
01258       CORBA::Boolean dont_route = false;
01259       CORBA::Long preallocate_buffer_size = false;
01260       const char *mmap_filename = "";
01261       const char *mmap_lockname = "";
01262 
01263       ACE_NEW_RETURN (property,
01264                       TAO_SharedMemory_Protocol_Properties (send_buffer_size,
01265                                                             recv_buffer_size,
01266                                                             keep_alive,
01267                                                             dont_route,
01268                                                             no_delay,
01269                                                             preallocate_buffer_size,
01270                                                             mmap_filename,
01271                                                             mmap_lockname),
01272                       0);
01273     }
01274 
01275   else if (id == TAO_TAG_UIOP_PROFILE)
01276     {
01277       int send_buffer_size = orb_core ? orb_core->orb_params ()->sock_sndbuf_size () : 0;
01278       int recv_buffer_size = orb_core ? orb_core->orb_params ()->sock_rcvbuf_size () : 0;
01279 
01280       ACE_NEW_RETURN (property,
01281                       TAO_UnixDomain_Protocol_Properties (send_buffer_size,
01282                                                           recv_buffer_size),
01283                       0);
01284     }
01285 
01286   else if (id == TAO_TAG_DIOP_PROFILE)
01287     {
01288       int send_buffer_size = orb_core ? orb_core->orb_params ()->sock_sndbuf_size () : 0;
01289       int recv_buffer_size = orb_core ? orb_core->orb_params ()->sock_rcvbuf_size () : 0;
01290       CORBA::Boolean enable_network_priority = false;
01291 
01292       ACE_NEW_RETURN (property,
01293                       TAO_UserDatagram_Protocol_Properties (send_buffer_size,
01294                                                             recv_buffer_size,
01295                                                             enable_network_priority),
01296                       0);
01297     }
01298 
01299   else if (id == TAO_TAG_SCIOP_PROFILE)
01300     {
01301       int send_buffer_size = orb_core ? orb_core->orb_params ()->sock_sndbuf_size () : 0;
01302       int recv_buffer_size = orb_core ? orb_core->orb_params ()->sock_rcvbuf_size () : 0;
01303       int no_delay = orb_core ? orb_core->orb_params ()->nodelay () : 0;
01304       CORBA::Boolean keep_alive = true;
01305       CORBA::Boolean dont_route = false;
01306       CORBA::Boolean enable_network_priority = false;
01307 
01308       ACE_NEW_RETURN (property,
01309                       TAO_StreamControl_Protocol_Properties (send_buffer_size,
01310                                                              recv_buffer_size,
01311                                                              keep_alive,
01312                                                              dont_route,
01313                                                              no_delay,
01314                                                              enable_network_priority),
01315                       0);
01316     }
01317 
01318   return property;
01319 }
01320 
01321 RTCORBA::ProtocolProperties*
01322 TAO_Protocol_Properties_Factory::create_orb_protocol_property (IOP::ProfileId id)
01323 {
01324   RTCORBA::ProtocolProperties* property = 0;
01325 
01326   if (id == IOP::TAG_INTERNET_IOP)
01327     ACE_NEW_RETURN (property,
01328                     TAO_GIOP_Protocol_Properties,
01329                     0);
01330 
01331   // Right now the only supported ORB protocol is GIOP
01332   // so we couple this with every protocol property.
01333   // The else statement is not necessary, but it
01334   // is here just to make clear that as soon as
01335   // new ORB protocol are supported other case
01336   // should be considered.
01337   else
01338     ACE_NEW_RETURN (property,
01339                     TAO_GIOP_Protocol_Properties,
01340                     0);
01341   return property;
01342 }
01343 
01344 TAO_END_VERSIONED_NAMESPACE_DECL
01345 
01346 #endif /* TAO_HAS_CORBA_MESSAGING && TAO_HAS_CORBA_MESSAGING != 0 */

Generated on Sun Jan 27 13:33:22 2008 for TAO_RTCORBA by doxygen 1.3.6