summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjai <jai@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2007-02-02 20:27:07 +0000
committerjai <jai@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2007-02-02 20:27:07 +0000
commit641c56e3473ffc15e71d9455959b7194db93e1a4 (patch)
tree852e6beb33cd6f34bb7022e582a0f1cd1b003b4a
parent814ec8e76e34c88755ff8f9017552e75b3d70b3a (diff)
downloadATCD-641c56e3473ffc15e71d9455959b7194db93e1a4.tar.gz
adding DS library
-rw-r--r--modules/TAO/tao/DiffServPolicy/DiffServ_Network_Priority_Hook.cpp36
-rw-r--r--modules/TAO/tao/DiffServPolicy/DiffServ_Network_Priority_Hook.h3
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