summaryrefslogtreecommitdiff
path: root/TAO/tao/Messaging
diff options
context:
space:
mode:
authormcorino <mcorino@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2011-11-11 10:47:09 +0000
committermcorino <mcorino@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2011-11-11 10:47:09 +0000
commitf959acdb7e2f737ec8cfac94b6956109682b8f17 (patch)
tree042dceb21ed0cac65b77d8f2ac8c2c6232810737 /TAO/tao/Messaging
parente45953ea0519269689e04fc1b1832413db46369f (diff)
downloadATCD-f959acdb7e2f737ec8cfac94b6956109682b8f17.tar.gz
Sun Nov 6 18:08:29 UTC 2011 Martin Corino <mcorino@remedy.nl>
* tao/CDR.cpp: * tao/Exclusive_TMS.cpp: * tao/GIOP_Message_Base.cpp: * tao/IIOP_Transport.h: * tao/LocateRequest_Invocation.cpp: * tao/Message_Semantics.h: * tao/Messaging/AMH_Response_Handler.cpp: * tao/Messaging/Asynch_Invocation.cpp: * tao/Strategies/COIOP_Transport.h: * tao/Strategies/DIOP_Transport.h: * tao/Strategies/SCIOP_Transport.h: * tao/Strategies/SHMIOP_Transport.h: * tao/Strategies/UIOP_Transport.h: * tao/Synch_Invocation.cpp: * tao/TAO_Server_Request.cpp: * tao/Transport.cpp: * tao/Transport.h: * tao/Wait_On_Leader_Follower.cpp: * tao/Wait_On_Leader_Follower.h: * tao/Wait_On_Read.cpp: * tao/Wait_On_Read.h: * tao/Wait_Strategy.cpp: * tao/Wait_Strategy.h: Changes to make the RW client wait strategy (in combination with the Exclusive transport muxing strategy) play nice with AMI. The essence of the problem of RW not working with AMI was that AMI requires transports to be registered with the reactor (so reply events can be handled) which is what RW prevented for all client transports. The changes provide a means for RW to recognize transports for Async client requests and register these with the reactor just before sending the request and removing them from the reactor again when the request has finished (reply received, timed out or disconnected).
Diffstat (limited to 'TAO/tao/Messaging')
-rw-r--r--TAO/tao/Messaging/AMH_Response_Handler.cpp6
-rw-r--r--TAO/tao/Messaging/Asynch_Invocation.cpp6
2 files changed, 7 insertions, 5 deletions
diff --git a/TAO/tao/Messaging/AMH_Response_Handler.cpp b/TAO/tao/Messaging/AMH_Response_Handler.cpp
index 65e1103bcde..76d617628e5 100644
--- a/TAO/tao/Messaging/AMH_Response_Handler.cpp
+++ b/TAO/tao/Messaging/AMH_Response_Handler.cpp
@@ -147,7 +147,7 @@ TAO_AMH_Response_Handler::_tao_rh_send_reply (void)
// Send the message.
int result = this->transport_->send_message (this->_tao_out,
0,
- TAO_REPLY);
+ TAO_Message_Semantics (TAO_Message_Semantics::TAO_REPLY));
if (result == -1)
{
@@ -212,7 +212,7 @@ TAO_AMH_Response_Handler::_tao_rh_send_exception (const CORBA::Exception &ex)
// Send the Exception
if (this->transport_->send_message (this->_tao_out,
0,
- TAO_REPLY) == -1)
+ TAO_Message_Semantics (TAO_Message_Semantics::TAO_REPLY)) == -1)
{
if (TAO_debug_level > 0)
ACE_ERROR ((LM_ERROR,
@@ -278,7 +278,7 @@ TAO_AMH_Response_Handler::_tao_rh_send_location_forward (CORBA::Object_ptr fwd,
// Send the Exception
if (this->transport_->send_message (this->_tao_out,
0,
- TAO_REPLY) == -1)
+ TAO_Message_Semantics (TAO_Message_Semantics::TAO_REPLY)) == -1)
{
if (TAO_debug_level > 0)
ACE_ERROR ((LM_ERROR,
diff --git a/TAO/tao/Messaging/Asynch_Invocation.cpp b/TAO/tao/Messaging/Asynch_Invocation.cpp
index 8aff9f96890..db7a892ab72 100644
--- a/TAO/tao/Messaging/Asynch_Invocation.cpp
+++ b/TAO/tao/Messaging/Asynch_Invocation.cpp
@@ -72,7 +72,8 @@ namespace TAO
// call.
cdr.message_attributes (this->details_.request_id (),
this->resolver_.stub (),
- TAO_ONEWAY_REQUEST,
+ TAO_Message_Semantics (TAO_Message_Semantics::TAO_ONEWAY_REQUEST,
+ TAO_Message_Semantics::TAO_ASYNCH_CALLBACK),
max_wait_time);
this->write_header (cdr);
@@ -107,7 +108,8 @@ namespace TAO
// paraphernalia within the ORB to fire, like buffering if
// send blocks etc.
s = this->send_message (cdr,
- TAO_ONEWAY_REQUEST,
+ TAO_Message_Semantics (TAO_Message_Semantics::TAO_ONEWAY_REQUEST,
+ TAO_Message_Semantics::TAO_ASYNCH_CALLBACK),
max_wait_time);
ace_mon.release();