summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoryamuna <yamuna@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2002-06-26 20:16:46 +0000
committeryamuna <yamuna@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2002-06-26 20:16:46 +0000
commit07bb26d9726849b7ce7f1371ed94d2a43325ca07 (patch)
tree17a8c3ef81e24386e7052f41d8cbc1f219b72225
parent621139354ba723339ced643ca03ee6c3560430f1 (diff)
downloadATCD-07bb26d9726849b7ce7f1371ed94d2a43325ca07.tar.gz
ChangelogTag: Wed June 26 2:09:00 2002 Yamuna Krishnamurthy <yamuna@oomworks.com>
-rw-r--r--TAO/tao/IIOP_Connection_Handler.cpp85
-rw-r--r--TAO/tao/IIOP_Connector.cpp4
-rw-r--r--TAO/tao/IIOP_Transport.cpp242
-rw-r--r--TAO/tao/IIOP_Transport.h6
-rw-r--r--TAO/tao/PortableServer/Default_Servant_Dispatcher.cpp3
-rw-r--r--TAO/tao/PortableServer/Default_Servant_Dispatcher.h3
-rw-r--r--TAO/tao/Protocols_Hooks.h35
-rw-r--r--TAO/tao/objectid.h1
8 files changed, 284 insertions, 95 deletions
diff --git a/TAO/tao/IIOP_Connection_Handler.cpp b/TAO/tao/IIOP_Connection_Handler.cpp
index fb8819e806f..e6a0e4833a6 100644
--- a/TAO/tao/IIOP_Connection_Handler.cpp
+++ b/TAO/tao/IIOP_Connection_Handler.cpp
@@ -25,8 +25,7 @@ ACE_RCSID (tao,
TAO_IIOP_Connection_Handler::TAO_IIOP_Connection_Handler (ACE_Thread_Manager *t)
: TAO_IIOP_SVC_HANDLER (t, 0 , 0),
- TAO_Connection_Handler (0),
- tcp_properties_ (0)
+ TAO_Connection_Handler (0)
{
// This constructor should *never* get called, it is just here to
// make the compiler happy: the default implementation of the
@@ -42,8 +41,8 @@ TAO_IIOP_Connection_Handler::TAO_IIOP_Connection_Handler (TAO_ORB_Core *orb_core
void *arg)
: TAO_IIOP_SVC_HANDLER (orb_core->thr_mgr (), 0, 0),
TAO_Connection_Handler (orb_core),
- tcp_properties_ (ACE_static_cast
- (TAO_IIOP_Properties *, arg))
+ tcp_properties_ (*(ACE_static_cast
+ (TAO_IIOP_Properties *, arg)))
{
TAO_IIOP_Transport* specific_transport = 0;
ACE_NEW(specific_transport,
@@ -63,15 +62,15 @@ int
TAO_IIOP_Connection_Handler::open (void*)
{
if (this->set_socket_option (this->peer (),
- this->tcp_properties_->send_buffer_size,
- this->tcp_properties_->recv_buffer_size) == -1)
+ this->tcp_properties_.send_buffer_size,
+ this->tcp_properties_.recv_buffer_size) == -1)
return -1;
#if !defined (ACE_LACKS_TCP_NODELAY)
if (this->peer ().set_option (ACE_IPPROTO_TCP,
TCP_NODELAY,
- (void *) &tcp_properties_->no_delay,
+ (void *) &tcp_properties_.no_delay,
sizeof (int)) == -1)
return -1;
#endif /* ! ACE_LACKS_TCP_NODELAY */
@@ -410,6 +409,78 @@ TAO_IIOP_Connection_Handler::handle_input (ACE_HANDLE)
return retval;
}
+void
+TAO_IIOP_Connection_Handler::update_protocol_properties (int send_buffer_size,
+ int recv_buffer_size,
+ int no_delay,
+ int enable_network_priority)
+{
+ if (TAO_debug_level)
+ ACE_DEBUG ((LM_DEBUG,
+ "TAO_IIOP_Connection_Handler::update_protocol_properties \n enable_network_priority = %d\n",
+ enable_network_priority));
+
+ if (this->tcp_properties_.send_buffer_size != send_buffer_size)
+ this->tcp_properties_.send_buffer_size = send_buffer_size;
+
+ if (this->tcp_properties_.recv_buffer_size != recv_buffer_size)
+ this->tcp_properties_.recv_buffer_size = recv_buffer_size;
+
+ if (this->tcp_properties_.no_delay != no_delay)
+ this->tcp_properties_.no_delay = no_delay;
+
+ if (this->tcp_properties_.enable_network_priority != enable_network_priority)
+ this->tcp_properties_.enable_network_priority = enable_network_priority;
+
+}
+
+int
+TAO_IIOP_Connection_Handler::enable_network_priority (void)
+{
+ return this->tcp_properties_.enable_network_priority;
+}
+
+int
+TAO_IIOP_Connection_Handler::set_dscp_codepoint (void)
+{
+ int tos;
+ if (this->enable_network_priority ())
+ {
+ TAO_Protocols_Hooks *tph = this->orb_core ()->get_protocols_hooks (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_CHECK_RETURN (-1);
+
+ if (tph != 0)
+ {
+ CORBA::Long codepoint =
+ tph->get_dscp_codepoint ();
+
+
+ tos = (int)(codepoint ) << 2;
+ }
+ }
+ else
+ {
+ tos = IPDSFIELD_DSCP_DEFAULT << 2;
+ }
+
+ if (tos != this->dscp_codepoint_)
+ {
+ int ret = this->peer ().set_option(IPPROTO_IP, IP_TOS, (int *)&tos , (int)sizeof(tos));
+
+ if (ret < 0)
+ ACE_DEBUG ((LM_DEBUG,
+ "Failed to set Diffserv codepoint - try running as superuser\n"));
+
+ if(TAO_debug_level)
+ {
+ ACE_DEBUG((LM_DEBUG, "(%N,%l) set tos: ret: %d %x\n", ret, tos));
+ }
+ this->dscp_codepoint_ = tos;
+ }
+
+ return 0;
+}
+
diff --git a/TAO/tao/IIOP_Connector.cpp b/TAO/tao/IIOP_Connector.cpp
index fa35897a546..ab8991a7f77 100644
--- a/TAO/tao/IIOP_Connector.cpp
+++ b/TAO/tao/IIOP_Connector.cpp
@@ -354,6 +354,7 @@ TAO_IIOP_Connector::init_tcp_properties (void)
int send_buffer_size = this->orb_core ()->orb_params ()->sock_sndbuf_size ();
int recv_buffer_size = this->orb_core ()->orb_params ()->sock_rcvbuf_size ();
int no_delay = this->orb_core ()->orb_params ()->nodelay ();
+ int enable_network_priority = 0;
TAO_Protocols_Hooks *tph = this->orb_core ()->get_protocols_hooks (ACE_ENV_SINGLE_ARG_PARAMETER);
ACE_CHECK_RETURN (-1);
@@ -367,6 +368,7 @@ TAO_IIOP_Connector::init_tcp_properties (void)
tph->call_client_protocols_hook (send_buffer_size,
recv_buffer_size,
no_delay,
+ enable_network_priority,
protocol_type);
if(hook_result == -1)
@@ -380,6 +382,8 @@ TAO_IIOP_Connector::init_tcp_properties (void)
recv_buffer_size;
this->tcp_properties_.no_delay =
no_delay;
+ this->tcp_properties_.enable_network_priority =
+ enable_network_priority;
return 0;
}
diff --git a/TAO/tao/IIOP_Transport.cpp b/TAO/tao/IIOP_Transport.cpp
index 815d41e49b8..f2a65d9dc12 100644
--- a/TAO/tao/IIOP_Transport.cpp
+++ b/TAO/tao/IIOP_Transport.cpp
@@ -18,6 +18,7 @@
#include "tao/debug.h"
#include "tao/GIOP_Message_Base.h"
#include "tao/GIOP_Message_Lite.h"
+#include "tao/Adapter.h"
#if !defined (__ACE_INLINE__)
# include "tao/IIOP_Transport.i"
@@ -25,12 +26,11 @@
ACE_RCSID (tao, IIOP_Transport, "$Id$")
-
TAO_IIOP_Transport::TAO_IIOP_Transport (TAO_IIOP_Connection_Handler *handler,
- TAO_ORB_Core *orb_core,
- CORBA::Boolean flag)
+ TAO_ORB_Core *orb_core,
+ CORBA::Boolean flag)
: TAO_Transport (TAO_TAG_IIOP_PROFILE,
- orb_core)
+ orb_core)
, connection_handler_ (handler)
, messaging_object_ (0)
{
@@ -38,13 +38,13 @@ TAO_IIOP_Transport::TAO_IIOP_Transport (TAO_IIOP_Connection_Handler *handler,
{
// Use the lite version of the protocol
ACE_NEW (this->messaging_object_,
- TAO_GIOP_Message_Lite (orb_core));
+ TAO_GIOP_Message_Lite (orb_core));
}
else
{
// Use the normal GIOP object
ACE_NEW (this->messaging_object_,
- TAO_GIOP_Message_Base (orb_core));
+ TAO_GIOP_Message_Base (orb_core));
}
}
@@ -59,6 +59,12 @@ TAO_IIOP_Transport::event_handler_i (void)
return this->connection_handler_;
}
+TAO_IIOP_Connection_Handler *
+TAO_IIOP_Transport::connection_handler (void)
+{
+ return this->connection_handler_;
+}
+
TAO_Pluggable_Messaging *
TAO_IIOP_Transport::messaging_object (void)
{
@@ -67,11 +73,11 @@ TAO_IIOP_Transport::messaging_object (void)
ssize_t
TAO_IIOP_Transport::send_i (iovec *iov, int iovcnt,
- size_t &bytes_transferred,
- const ACE_Time_Value *max_wait_time)
+ size_t &bytes_transferred,
+ const ACE_Time_Value *max_wait_time)
{
ssize_t retval = this->connection_handler_->peer ().sendv (iov, iovcnt,
- max_wait_time);
+ max_wait_time);
if (retval > 0)
bytes_transferred = retval;
@@ -80,12 +86,12 @@ TAO_IIOP_Transport::send_i (iovec *iov, int iovcnt,
ssize_t
TAO_IIOP_Transport::recv_i (char *buf,
- size_t len,
- const ACE_Time_Value *max_wait_time)
+ size_t len,
+ const ACE_Time_Value *max_wait_time)
{
ssize_t n = this->connection_handler_->peer ().recv (buf,
- len,
- max_wait_time);
+ len,
+ max_wait_time);
// Do not print the error message if it is a timeout, which could
// occur in thread-per-connection.
@@ -94,16 +100,16 @@ TAO_IIOP_Transport::recv_i (char *buf,
errno != ETIME)
{
ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("TAO (%P|%t) - %p \n"),
- ACE_TEXT ("TAO - read message failure ")
- ACE_TEXT ("recv_i () \n")));
+ ACE_TEXT ("TAO (%P|%t) - %p \n"),
+ ACE_TEXT ("TAO - read message failure ")
+ ACE_TEXT ("recv_i () \n")));
}
// Error handling
if (n == -1)
{
if (errno == EWOULDBLOCK)
- return 0;
+ return 0;
return -1;
@@ -127,8 +133,8 @@ TAO_IIOP_Transport::register_handler_i (void)
if (TAO_debug_level > 4)
{
ACE_DEBUG ((LM_DEBUG,
- "TAO (%P|%t) - IIOP_Transport::register_handler %d\n",
- this->id ()));
+ "TAO (%P|%t) - IIOP_Transport::register_handler %d\n",
+ this->id ()));
}
ACE_Reactor *r = this->orb_core_->reactor ();
@@ -143,54 +149,85 @@ TAO_IIOP_Transport::register_handler_i (void)
// Register the handler with the reactor
return r->register_handler (this->connection_handler_,
- ACE_Event_Handler::READ_MASK);
+ ACE_Event_Handler::READ_MASK);
}
int
TAO_IIOP_Transport::send_request (TAO_Stub *stub,
- TAO_ORB_Core *orb_core,
- TAO_OutputCDR &stream,
- int two_way,
- ACE_Time_Value *max_wait_time)
+ TAO_ORB_Core *orb_core,
+ TAO_OutputCDR &stream,
+ int two_way,
+ ACE_Time_Value *max_wait_time)
{
+ TAO_Protocols_Hooks *tph = this->orb_core_->get_protocols_hooks (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_CHECK_RETURN (-1);
+
+ if (tph != 0)
+ {
+ /*
+ int send_buffer_size;
+ int recv_buffer_size;
+ int no_delay;
+ int enable_network_priority;
+ */
+ const char protocol [] = "iiop";
+ const char *protocol_type = protocol;
+
+ int result =
+ tph->update_client_protocol_properties (stub,
+ this->connection_handler_,
+ protocol_type);
+
+ if (result == -1)
+ return -1;
+
+ }
+
if (this->ws_->sending_request (orb_core,
- two_way) == -1)
+ two_way) == -1)
return -1;
if (this->send_message (stream,
- stub,
- two_way,
- max_wait_time) == -1)
+ stub,
+ two_way,
+ max_wait_time) == -1)
return -1;
-
+
return this->idle_after_send ();
}
int
TAO_IIOP_Transport::send_message (TAO_OutputCDR &stream,
- TAO_Stub *stub,
- int twoway,
- ACE_Time_Value *max_wait_time)
+ TAO_Stub *stub,
+ int twoway,
+ ACE_Time_Value *max_wait_time)
{
+ if (TAO_debug_level)
+ ACE_DEBUG ((LM_DEBUG,
+ "TAO_IIOP_Transport::send_message\n enable_network_priority = %d\n",
+ this->connection_handler_->enable_network_priority ()));
+
+ this->connection_handler_->set_dscp_codepoint ();
+
// Format the message in the stream first
if (this->messaging_object_->format_message (stream) != 0)
return -1;
// This guarantees to send all data (bytes) or return an error.
ssize_t n = this->send_message_i (stub,
- twoway,
- stream.begin (),
- max_wait_time);
+ twoway,
+ stream.begin (),
+ max_wait_time);
if (n == -1)
{
if (TAO_debug_level)
- ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("TAO: (%P|%t|%N|%l) closing transport %d after fault %p\n"),
- this->id (),
- ACE_TEXT ("send_message ()\n")));
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("TAO: (%P|%t|%N|%l) closing transport %d after fault %p\n"),
+ this->id (),
+ ACE_TEXT ("send_message ()\n")));
return -1;
}
@@ -198,10 +235,54 @@ TAO_IIOP_Transport::send_message (TAO_OutputCDR &stream,
return 1;
}
+/*
+int
+TAO_IIOP_Transport::send_reply (TAO_OutputCDR &stream,
+ TAO_Adapter *poa)
+{
+
+ TAO_Protocols_Hooks *tph = this->orb_core_->get_protocols_hooks (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_CHECK_RETURN (-1);
+
+
+ if (tph != 0)
+ {
+ int send_buffer_size;
+ int recv_buffer_size;
+ int no_delay;
+ int enable_network_priority;
+
+ const char protocol [] = "iiop";
+ const char *protocol_type = protocol;
+
+ int result =
+ tph->get_effective_server_protocol_properties (poa,
+ send_buffer_size,
+ recv_buffer_size,
+ no_delay,
+ enable_network_priority,
+ protocol_type);
+ if (result != 0)
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "Error in getting the effective protocol properties\n"),
+ -1);
+
+ this->connection_handler_->update_protocol_properties (send_buffer_size,
+ recv_buffer_size,
+ no_delay,
+ enable_network_priority);
+ }
+
+ int result = this->send_message (stream);
+ return result;
+}
+
+ */
+
int
TAO_IIOP_Transport::generate_request_header (TAO_Operation_Details &opdetails,
- TAO_Target_Specification &spec,
- TAO_OutputCDR &msg)
+ TAO_Target_Specification &spec,
+ TAO_OutputCDR &msg)
{
// Check whether we have a Bi Dir IIOP policy set, whether the
// messaging objects are ready to handle bidirectional connections
@@ -215,25 +296,24 @@ TAO_IIOP_Transport::generate_request_header (TAO_Operation_Details &opdetails,
// Set the flag to 0 (i.e., originating side)
this->bidirectional_flag (0);
-
- // Modify the request id if we have BiDirectional client/server
- // setup.
- // @@ Is this needed at all?
- opdetails.modify_request_id (this->bidirectional_flag ());
}
+ // Modify the request id if we have BiDirectional client/server
+ // setup
+ opdetails.modify_request_id (this->bidirectional_flag ());
+
return TAO_Transport::generate_request_header (opdetails,
- spec,
- msg);
+ spec,
+ msg);
}
int
TAO_IIOP_Transport::messaging_init (CORBA::Octet major,
- CORBA::Octet minor)
+ CORBA::Octet minor)
{
this->messaging_object_->init (major,
- minor);
+ minor);
return 1;
}
@@ -274,12 +354,12 @@ TAO_IIOP_Transport::set_bidir_context_info (TAO_Operation_Details &opdetails)
{
// Check whether it is a IIOP acceptor
if ((*acceptor)->tag () == TAO_TAG_IIOP_PROFILE)
- {
- // @@ Why isn't the return value checked!
- // -Ossama
- this->get_listen_point (listen_point_list,
- *acceptor);
- }
+ {
+ // @@ Why isn't the return value checked!
+ // -Ossama
+ this->get_listen_point (listen_point_list,
+ *acceptor);
+ }
}
// We have the ListenPointList at this point. Create a output CDR
@@ -293,7 +373,7 @@ TAO_IIOP_Transport::set_bidir_context_info (TAO_Operation_Details &opdetails)
// Add this info in to the svc_list
opdetails.request_service_context ().set_context (IOP::BI_DIR_IIOP,
- cdr);
+ cdr);
return;
}
@@ -305,7 +385,7 @@ TAO_IIOP_Transport::get_listen_point (
{
TAO_IIOP_Acceptor *iiop_acceptor =
ACE_dynamic_cast (TAO_IIOP_Acceptor *,
- acceptor );
+ acceptor );
// Get the array of endpoints serviced by TAO_IIOP_Acceptor
const ACE_INET_Addr *endpoint_addr =
@@ -322,10 +402,10 @@ TAO_IIOP_Transport::get_listen_point (
== -1)
{
ACE_ERROR_RETURN ((LM_ERROR,
- ACE_TEXT ("(%P|%t) Could not resolve local ")
- ACE_TEXT ("host address in ")
- ACE_TEXT ("get_listen_point()\n")),
- -1);
+ ACE_TEXT ("(%P|%t) Could not resolve local ")
+ ACE_TEXT ("host address in ")
+ ACE_TEXT ("get_listen_point()\n")),
+ -1);
}
// Note: Looks like there is no point in sending the list of
@@ -335,13 +415,13 @@ TAO_IIOP_Transport::get_listen_point (
// Get the hostname for the local address
if (iiop_acceptor->hostname (this->orb_core_,
- local_addr,
- local_interface.out ()) == -1)
+ local_addr,
+ local_interface.out ()) == -1)
{
ACE_ERROR_RETURN ((LM_ERROR,
- ACE_TEXT ("(%P|%t) Could not resolve local host")
- ACE_TEXT (" name \n")),
- -1);
+ ACE_TEXT ("(%P|%t) Could not resolve local host")
+ ACE_TEXT (" name \n")),
+ -1);
}
for (size_t index = 0;
@@ -349,20 +429,20 @@ TAO_IIOP_Transport::get_listen_point (
index++)
{
if (local_addr.get_ip_address()
- == endpoint_addr[index].get_ip_address())
- {
- // Get the count of the number of elements
- CORBA::ULong len = listen_point_list.length ();
-
- // Increase the length by 1
- listen_point_list.length (len + 1);
-
- // We have the connection and the acceptor endpoint on the
- // same interface
- IIOP::ListenPoint &point = listen_point_list[len];
- point.host = CORBA::string_dup (local_interface.in ());
- point.port = endpoint_addr[index].get_port_number ();
- }
+ == endpoint_addr[index].get_ip_address())
+ {
+ // Get the count of the number of elements
+ CORBA::ULong len = listen_point_list.length ();
+
+ // Increase the length by 1
+ listen_point_list.length (len + 1);
+
+ // We have the connection and the acceptor endpoint on the
+ // same interface
+ IIOP::ListenPoint &point = listen_point_list[len];
+ point.host = CORBA::string_dup (local_interface.in ());
+ point.port = endpoint_addr[index].get_port_number ();
+ }
}
return 1;
diff --git a/TAO/tao/IIOP_Transport.h b/TAO/tao/IIOP_Transport.h
index 01ef1914569..e12d42391ca 100644
--- a/TAO/tao/IIOP_Transport.h
+++ b/TAO/tao/IIOP_Transport.h
@@ -27,13 +27,13 @@
#include "ace/Svc_Handler.h"
#include "tao/IIOPC.h"
-
// Forward decls.
class TAO_IIOP_Connection_Handler;
class TAO_ORB_Core;
class TAO_Operation_Details;
class TAO_Pluggable_Messaging;
class TAO_Acceptor;
+class TAO_Adapter;
// Service Handler for this transport
typedef ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH>
@@ -106,6 +106,9 @@ public:
int twoway = 1,
ACE_Time_Value *max_time_wait = 0);
+ /*virtual int send_reply (TAO_OutputCDR &stream,
+ TAO_Adapter *poa = 0);*/
+
virtual int generate_request_header (TAO_Operation_Details &opdetails,
TAO_Target_Specification &spec,
TAO_OutputCDR &msg);
@@ -115,6 +118,7 @@ public:
virtual int tear_listen_point_list (TAO_InputCDR &cdr);
+ TAO_IIOP_Connection_Handler *connection_handler (void);
//@}
private:
diff --git a/TAO/tao/PortableServer/Default_Servant_Dispatcher.cpp b/TAO/tao/PortableServer/Default_Servant_Dispatcher.cpp
index 4e011af125e..4e95511f225 100644
--- a/TAO/tao/PortableServer/Default_Servant_Dispatcher.cpp
+++ b/TAO/tao/PortableServer/Default_Servant_Dispatcher.cpp
@@ -41,8 +41,7 @@ TAO_Default_Servant_Dispatcher::create_POA (const ACE_CString &name,
void
TAO_Default_Servant_Dispatcher::pre_invoke_remote_request (TAO_POA &,
CORBA::Short,
- TAO_Service_Context &,
- TAO_Service_Context &,
+ TAO_ServerRequest &,
TAO_Object_Adapter::Servant_Upcall::Pre_Invoke_State &
ACE_ENV_ARG_DECL_NOT_USED)
{
diff --git a/TAO/tao/PortableServer/Default_Servant_Dispatcher.h b/TAO/tao/PortableServer/Default_Servant_Dispatcher.h
index 596722dc340..1289328b3f4 100644
--- a/TAO/tao/PortableServer/Default_Servant_Dispatcher.h
+++ b/TAO/tao/PortableServer/Default_Servant_Dispatcher.h
@@ -40,8 +40,7 @@ public:
/// Pre_invoke remote request.
void pre_invoke_remote_request (TAO_POA &poa,
CORBA::Short servant_priority,
- TAO_Service_Context &request_service_context,
- TAO_Service_Context &reply_service_context,
+ TAO_ServerRequest &req,
TAO_Object_Adapter::Servant_Upcall::Pre_Invoke_State &pre_invoke_state
ACE_ENV_ARG_DECL);
diff --git a/TAO/tao/Protocols_Hooks.h b/TAO/tao/Protocols_Hooks.h
index 435c9bac814..24d0ad46af8 100644
--- a/TAO/tao/Protocols_Hooks.h
+++ b/TAO/tao/Protocols_Hooks.h
@@ -17,6 +17,7 @@
#include "corbafwd.h"
#include "Policy_ForwardC.h"
+
#if !defined (ACE_LACKS_PRAGMA_ONCE)
# pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */
@@ -28,6 +29,7 @@ class TAO_GIOP_Invocation;
class TAO_Resource_Factory;
class TAO_Service_Context;
class TAO_Acceptor_Registry;
+class TAO_Connection_Handler;
class TAO_Export TAO_Protocols_Hooks : public ACE_Service_Object
{
@@ -42,19 +44,48 @@ public:
virtual int call_client_protocols_hook (int &send_buffer_size,
int &recv_buffer_size,
int &no_delay,
+ int &enable_network_priority,
const char *protocol_type) = 0;
virtual int call_server_protocols_hook (int &send_buffer_size,
int &recv_buffer_size,
int &no_delay,
+ int &enable_network_priority,
const char *protocol_type) = 0;
-
+/*
+ virtual int get_effective_client_protocol_properties (TAO_Stub *stub,
+ int &send_buffer_size,
+ int &recv_buffer_size,
+ int &no_delay,
+ int &enable_network_priority,
+ const char *protocol_type) = 0;
+
+
+ virtual int get_effective_server_protocol_properties (TAO_Adapter *poa,
+ int &send_buffer_size,
+ int &recv_buffer_size,
+ int &no_delay,
+ int &enable_network_priority,
+ const char *protocol_type) = 0;
+
+ */
+ virtual int update_client_protocol_properties (TAO_Stub *stub,
+ TAO_Connection_Handler * connection_handler,
+ const char *protocol_type) = 0;
+
+
+ virtual int update_server_protocol_properties (CORBA::Policy *policy,
+ TAO_Connection_Handler * connection_handler,
+ const char *protocol_type) = 0;
+
+
+ virtual CORBA::Long get_dscp_codepoint (void) = 0;
virtual void rt_service_context (TAO_Stub *stub,
TAO_Service_Context &service_context,
CORBA::Boolean restart
ACE_ENV_ARG_DECL) = 0;
-
+
virtual void add_rt_service_context_hook (TAO_Service_Context &service_context,
CORBA::Policy *model_policy,
CORBA::Short &client_priority
diff --git a/TAO/tao/objectid.h b/TAO/tao/objectid.h
index c1d3d0ab102..546d3ee3853 100644
--- a/TAO/tao/objectid.h
+++ b/TAO/tao/objectid.h
@@ -54,6 +54,7 @@
#define TAO_OBJID_RTORB "RTORB"
#define TAO_OBJID_RTCURRENT "RTCurrent"
#define TAO_OBJID_PRIORITYMAPPINGMANAGER "PriorityMappingManager"
+#define TAO_OBJID_NETWORKPRIORITYMAPPINGMANAGER "NetworkPriorityMappingManager"
#define TAO_OBJID_SECURITYCURRENT "SecurityCurrent"
#define TAO_OBJID_SECURITYMANAGER "SecurityManager"
#define TAO_OBJID_TRANSACTIONCURRENT "TransactionCurrent"