diff options
author | jai <jai@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2007-02-02 20:27:07 +0000 |
---|---|---|
committer | jai <jai@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2007-02-02 20:27:07 +0000 |
commit | 641c56e3473ffc15e71d9455959b7194db93e1a4 (patch) | |
tree | 852e6beb33cd6f34bb7022e582a0f1cd1b003b4a | |
parent | 814ec8e76e34c88755ff8f9017552e75b3d70b3a (diff) | |
download | ATCD-641c56e3473ffc15e71d9455959b7194db93e1a4.tar.gz |
adding DS library
-rw-r--r-- | modules/TAO/tao/DiffServPolicy/DiffServ_Network_Priority_Hook.cpp | 36 | ||||
-rw-r--r-- | modules/TAO/tao/DiffServPolicy/DiffServ_Network_Priority_Hook.h | 3 |
2 files changed, 39 insertions, 0 deletions
diff --git a/modules/TAO/tao/DiffServPolicy/DiffServ_Network_Priority_Hook.cpp b/modules/TAO/tao/DiffServPolicy/DiffServ_Network_Priority_Hook.cpp index 8c07ca25787..dd377d2b3ec 100644 --- a/modules/TAO/tao/DiffServPolicy/DiffServ_Network_Priority_Hook.cpp +++ b/modules/TAO/tao/DiffServPolicy/DiffServ_Network_Priority_Hook.cpp @@ -5,6 +5,10 @@ #include "tao/PortableServer/POA_Policy_Set.h" #include "tao/DiffServPolicy/Server_Network_Priority_Policy.h" #include "tao/DiffServPolicy/DiffServPolicyC.h" +#include "tao/Service_Context.h" +#include "tao/TAO_Server_Request.h" +#include "tao/Network_Priority_Protocols_Hooks.h" +#include "tao/ORB_Core.h" ACE_RCSID(DiffServPolicy, DiffServ_Network_Priority_Hook, @@ -55,6 +59,38 @@ TAO_DiffServ_Network_Priority_Hook::update_network_priority ( } } +CORBA::Long +TAO_DiffServ_Network_Priority_Hook::get_dscp_codepoint ( + TAO_ServerRequest &req, TAO_Root_POA &poa) +{ + CORBA::Long dscp_codepoint; + TAO_Service_Context &request_service_context = + req.request_service_context (); + + TAO_Network_Priority_Protocols_Hooks *nph = + poa.orb_core ().get_network_priority_protocols_hooks (); + + TAO::Portable_Server::Cached_Policies::NetworkPriorityModel npm = + poa.cached_policies ().network_priority_model (); + + if (npm == TAO::Portable_Server::Cached_Policies:: + CLIENT_PROPAGATED_NETWORK_PRIORITY) + { + dscp_codepoint = nph->get_dscp_codepoint (request_service_context); + } + else if (npm == TAO::Portable_Server::Cached_Policies:: + SERVER_DECLARED_NETWORK_PRIORITY) + { + dscp_codepoint = poa.cached_policies ().reply_diffserv_codepoint (); + } + else + { + dscp_codepoint = 0; + } + + return dscp_codepoint; +} + TAO_END_VERSIONED_NAMESPACE_DECL ACE_FACTORY_DEFINE (TAO_DiffServPolicy, TAO_DiffServ_Network_Priority_Hook) diff --git a/modules/TAO/tao/DiffServPolicy/DiffServ_Network_Priority_Hook.h b/modules/TAO/tao/DiffServPolicy/DiffServ_Network_Priority_Hook.h index b449af9d7df..7b2ce814de3 100644 --- a/modules/TAO/tao/DiffServPolicy/DiffServ_Network_Priority_Hook.h +++ b/modules/TAO/tao/DiffServPolicy/DiffServ_Network_Priority_Hook.h @@ -35,6 +35,9 @@ public: void update_network_priority (TAO_Root_POA &poa, TAO_POA_Policy_Set &poa_policy_set); + + CORBA::Long get_dscp_codepoint (TAO_ServerRequest &req, + TAO_Root_POA &poa); }; TAO_END_VERSIONED_NAMESPACE_DECL |