diff options
author | mcorino <mcorino@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2011-11-11 10:47:09 +0000 |
---|---|---|
committer | mcorino <mcorino@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2011-11-11 10:47:09 +0000 |
commit | f959acdb7e2f737ec8cfac94b6956109682b8f17 (patch) | |
tree | 042dceb21ed0cac65b77d8f2ac8c2c6232810737 /TAO/tao/Messaging | |
parent | e45953ea0519269689e04fc1b1832413db46369f (diff) | |
download | ATCD-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.cpp | 6 | ||||
-rw-r--r-- | TAO/tao/Messaging/Asynch_Invocation.cpp | 6 |
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(); |