summaryrefslogtreecommitdiff
path: root/TAO/orbsvcs/orbsvcs
diff options
context:
space:
mode:
authorsma <sma@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2012-03-22 11:12:34 +0000
committersma <sma@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2012-03-22 11:12:34 +0000
commit45b462fb02d0824032ecc9cdce94e16d29e94087 (patch)
treeb34473037a1949ac616322cf513d5ae866532b29 /TAO/orbsvcs/orbsvcs
parenta74789f4233449239a03e79e1a810ca54df93946 (diff)
downloadATCD-45b462fb02d0824032ecc9cdce94e16d29e94087.tar.gz
Thu Mar 22 11:10:00 UTC 2012 Simon Massey <simon dot massey at prismtech dot com>
* orbsvcs/orbsvcs/HTIOP/HTIOP_Transport.cpp: * orbsvcs/orbsvcs/HTIOP/HTIOP_Transport.h: * orbsvcs/orbsvcs/PortableGroup/UIPMC_Transport.cpp: * orbsvcs/orbsvcs/PortableGroup/UIPMC_Transport.h: * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Transport.cpp: * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Transport.h: * tao/GIOP_Message_Base.cpp: * tao/GIOP_Message_Base.h: * tao/IIOP_Transport.cpp: * tao/IIOP_Transport.h: * tao/Messaging/AMH_Response_Handler.cpp: * tao/On_Demand_Fragmentation_Strategy.cpp: * tao/TAO_Server_Request.cpp: * tao/Transport.cpp: * tao/Transport.h: * tao/ZIOP_Adapter.h: * tao/Strategies/DIOP_Transport.cpp: * tao/Strategies/DIOP_Transport.h: * tao/Strategies/SHMIOP_Transport.cpp: * tao/Strategies/SHMIOP_Transport.h: * tao/Strategies/UIOP_Transport.cpp: * tao/Strategies/UIOP_Transport.h: * tao/ZIOP/ZIOP.cpp: * tao/ZIOP/ZIOP.h: * tests/Bug_3531b_Regression/server.cpp: Provide a pointer to the TAO_ServerRequest object down to TAO_GIOP_Message_Base::format_message() and TAO_ZIOP_LOADER::marshal_data () for server reply. Note this once more changes the transport send_message() api for ZIOP (and other furture uses) to add a possiable TAO_ServerRequest object as well as the possiable stub object. This lets the send_message access the client provided policies that control how the message is being dealt with.
Diffstat (limited to 'TAO/orbsvcs/orbsvcs')
-rw-r--r--TAO/orbsvcs/orbsvcs/HTIOP/HTIOP_Transport.cpp28
-rw-r--r--TAO/orbsvcs/orbsvcs/HTIOP/HTIOP_Transport.h1
-rw-r--r--TAO/orbsvcs/orbsvcs/PortableGroup/UIPMC_Transport.cpp18
-rw-r--r--TAO/orbsvcs/orbsvcs/PortableGroup/UIPMC_Transport.h1
-rw-r--r--TAO/orbsvcs/orbsvcs/SSLIOP/SSLIOP_Transport.cpp4
-rw-r--r--TAO/orbsvcs/orbsvcs/SSLIOP/SSLIOP_Transport.h1
6 files changed, 37 insertions, 16 deletions
diff --git a/TAO/orbsvcs/orbsvcs/HTIOP/HTIOP_Transport.cpp b/TAO/orbsvcs/orbsvcs/HTIOP/HTIOP_Transport.cpp
index dc829f0ec3a..6f5803136d1 100644
--- a/TAO/orbsvcs/orbsvcs/HTIOP/HTIOP_Transport.cpp
+++ b/TAO/orbsvcs/orbsvcs/HTIOP/HTIOP_Transport.cpp
@@ -142,14 +142,18 @@ TAO::HTIOP::Transport::send_request (TAO_Stub *stub,
{
if (this->ws_->sending_request (orb_core,
message_semantics) == -1)
-
- return -1;
+ {
+ return -1;
+ }
if (this->send_message (stream,
stub,
+ 0,
message_semantics,
max_wait_time) == -1)
- return -1;
+ {
+ return -1;
+ }
this->first_request_sent();
@@ -159,12 +163,15 @@ TAO::HTIOP::Transport::send_request (TAO_Stub *stub,
int
TAO::HTIOP::Transport::send_message (TAO_OutputCDR &stream,
TAO_Stub *stub,
+ TAO_ServerRequest *request,
TAO_Message_Semantics message_semantics,
ACE_Time_Value *max_wait_time)
{
// Format the message in the stream first
- if (this->messaging_object ()->format_message (stream, stub) != 0)
- return -1;
+ if (this->messaging_object ()->format_message (stream, stub, request) != 0)
+ {
+ return -1;
+ }
// This guarantees to send all data (bytes) or return an error.
ssize_t n = this->send_message_shared (stub,
@@ -179,10 +186,13 @@ TAO::HTIOP::Transport::send_message (TAO_OutputCDR &stream,
// would return -1 with errno set to ENOENT. %p then would dump
// a core. %m would then be softer on this.
if (TAO_debug_level)
- ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("TAO (%P|%t) - TAO::HTIOP::Transport[%d]::send_message, ")
- ACE_TEXT (" write failure - %m\n"),
- this->id ()));
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("TAO (%P|%t) - TAO::HTIOP::Transport[%d]::send_message, ")
+ ACE_TEXT (" write failure - %m\n"),
+ this->id ()));
+ }
+
return -1;
}
diff --git a/TAO/orbsvcs/orbsvcs/HTIOP/HTIOP_Transport.h b/TAO/orbsvcs/orbsvcs/HTIOP/HTIOP_Transport.h
index 4a0406d2692..f5b2a55b504 100644
--- a/TAO/orbsvcs/orbsvcs/HTIOP/HTIOP_Transport.h
+++ b/TAO/orbsvcs/orbsvcs/HTIOP/HTIOP_Transport.h
@@ -103,6 +103,7 @@ namespace TAO
virtual int send_message (TAO_OutputCDR &stream,
TAO_Stub *stub = 0,
+ TAO_ServerRequest *request = 0,
TAO_Message_Semantics message_semantics =
TAO_Message_Semantics (),
ACE_Time_Value *max_time_wait = 0);
diff --git a/TAO/orbsvcs/orbsvcs/PortableGroup/UIPMC_Transport.cpp b/TAO/orbsvcs/orbsvcs/PortableGroup/UIPMC_Transport.cpp
index f80a55280b4..0f043ded873 100644
--- a/TAO/orbsvcs/orbsvcs/PortableGroup/UIPMC_Transport.cpp
+++ b/TAO/orbsvcs/orbsvcs/PortableGroup/UIPMC_Transport.cpp
@@ -546,6 +546,7 @@ TAO_UIPMC_Transport<CONNECTION_HANDLER>::send_request (TAO_Stub *stub,
if (this->send_message (stream,
stub,
+ 0,
message_semantics,
max_wait_time) == -1)
@@ -558,12 +559,15 @@ template<typename CONNECTION_HANDLER>
int
TAO_UIPMC_Transport<CONNECTION_HANDLER>::send_message (TAO_OutputCDR &stream,
TAO_Stub *stub,
+ TAO_ServerRequest *request,
TAO_Message_Semantics message_semantics,
ACE_Time_Value *max_wait_time)
{
// Format the message in the stream first
- if (this->messaging_object ()->format_message (stream, stub) != 0)
- return -1;
+ if (this->messaging_object ()->format_message (stream, stub, request) != 0)
+ {
+ return -1;
+ }
// Strictly speaking, should not need to loop here because the
// socket never gets set to a nonblocking mode ... some Linux
@@ -578,10 +582,12 @@ TAO_UIPMC_Transport<CONNECTION_HANDLER>::send_message (TAO_OutputCDR &stream,
if (n == -1)
{
if (TAO_debug_level)
- ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("TAO: (%P|%t|%N|%l) closing transport %d after fault %m\n"),
- this->id (),
- ACE_TEXT ("send_message ()\n")));
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("TAO: (%P|%t|%N|%l) closing transport %d after fault %m\n"),
+ this->id (),
+ ACE_TEXT ("send_message ()\n")));
+ }
return -1;
}
diff --git a/TAO/orbsvcs/orbsvcs/PortableGroup/UIPMC_Transport.h b/TAO/orbsvcs/orbsvcs/PortableGroup/UIPMC_Transport.h
index a6f831160ca..1a2e3b4cc69 100644
--- a/TAO/orbsvcs/orbsvcs/PortableGroup/UIPMC_Transport.h
+++ b/TAO/orbsvcs/orbsvcs/PortableGroup/UIPMC_Transport.h
@@ -87,6 +87,7 @@ public:
virtual int send_message (TAO_OutputCDR &stream,
TAO_Stub *stub = 0,
+ TAO_ServerRequest *request = 0,
TAO_Message_Semantics message_semantics =
TAO_Message_Semantics (),
ACE_Time_Value *max_time_wait = 0);
diff --git a/TAO/orbsvcs/orbsvcs/SSLIOP/SSLIOP_Transport.cpp b/TAO/orbsvcs/orbsvcs/SSLIOP/SSLIOP_Transport.cpp
index 1e5f5c3996b..c6df3ae8d8c 100644
--- a/TAO/orbsvcs/orbsvcs/SSLIOP/SSLIOP_Transport.cpp
+++ b/TAO/orbsvcs/orbsvcs/SSLIOP/SSLIOP_Transport.cpp
@@ -123,6 +123,7 @@ TAO::SSLIOP::Transport::send_request (TAO_Stub *stub,
if (this->send_message (stream,
stub,
+ 0,
message_semantics,
max_wait_time) == -1)
@@ -134,11 +135,12 @@ TAO::SSLIOP::Transport::send_request (TAO_Stub *stub,
int
TAO::SSLIOP::Transport::send_message (TAO_OutputCDR &stream,
TAO_Stub *stub,
+ TAO_ServerRequest *request,
TAO_Message_Semantics message_semantics,
ACE_Time_Value *max_wait_time)
{
// Format the message in the stream first
- if (this->messaging_object ()->format_message (stream, stub) != 0)
+ if (this->messaging_object ()->format_message (stream, stub, request) != 0)
return -1;
// Strictly speaking, should not need to loop here because the
diff --git a/TAO/orbsvcs/orbsvcs/SSLIOP/SSLIOP_Transport.h b/TAO/orbsvcs/orbsvcs/SSLIOP/SSLIOP_Transport.h
index 10b2f901539..426c91205ee 100644
--- a/TAO/orbsvcs/orbsvcs/SSLIOP/SSLIOP_Transport.h
+++ b/TAO/orbsvcs/orbsvcs/SSLIOP/SSLIOP_Transport.h
@@ -107,6 +107,7 @@ namespace TAO
virtual int send_message (TAO_OutputCDR &stream,
TAO_Stub *stub = 0,
+ TAO_ServerRequest *request = 0,
TAO_Message_Semantics message_semantics =
TAO_Message_Semantics (),
ACE_Time_Value *max_time_wait = 0);