diff options
author | alex <alex@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1999-07-04 18:01:18 +0000 |
---|---|---|
committer | alex <alex@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1999-07-04 18:01:18 +0000 |
commit | b253bc589ff6e488cdceda71ae6ffc2e18608bc4 (patch) | |
tree | 0608c5d9aa5ba1b69b364f0a36a637bf126fc51a | |
parent | b117ca35719d8838eefbf755ffe62df8eebabb60 (diff) | |
download | ATCD-b253bc589ff6e488cdceda71ae6ffc2e18608bc4.tar.gz |
Sun Jul 4 13:00:38 1999 Alexander Babu Arulanthu <alex@cs.wustl.edu>
-rw-r--r-- | TAO/tao/Asynch_Invocation.cpp | 119 | ||||
-rw-r--r-- | TAO/tao/Asynch_Invocation.h | 19 | ||||
-rw-r--r-- | TAO/tao/Asynch_Invocation.i | 34 | ||||
-rw-r--r-- | TAO/tao/Client_Strategy_Factory.cpp | 2 | ||||
-rw-r--r-- | TAO/tao/Client_Strategy_Factory.h | 3 | ||||
-rw-r--r-- | TAO/tao/Invocation.cpp | 8 | ||||
-rw-r--r-- | TAO/tao/Invocation.h | 4 | ||||
-rw-r--r-- | TAO/tao/Invocation.i | 12 | ||||
-rw-r--r-- | TAO/tao/Pluggable.cpp | 2 | ||||
-rw-r--r-- | TAO/tao/Reply_Dispatcher.cpp | 26 | ||||
-rw-r--r-- | TAO/tao/Reply_Dispatcher.h | 12 | ||||
-rw-r--r-- | TAO/tao/Transport_Mux_Strategy.cpp | 28 | ||||
-rw-r--r-- | TAO/tao/Transport_Mux_Strategy.h | 5 | ||||
-rw-r--r-- | TAO/tao/default_client.cpp | 4 | ||||
-rw-r--r-- | TAO/tao/default_client.h | 2 |
15 files changed, 73 insertions, 207 deletions
diff --git a/TAO/tao/Asynch_Invocation.cpp b/TAO/tao/Asynch_Invocation.cpp index d81b84caec0..af1e13e09cc 100644 --- a/TAO/tao/Asynch_Invocation.cpp +++ b/TAO/tao/Asynch_Invocation.cpp @@ -53,10 +53,6 @@ TAO_GIOP_Twoway_Asynch_Invocation::start (CORBA::Environment &ACE_TRY_ENV) this->TAO_GIOP_Invocation::start (ACE_TRY_ENV); ACE_CHECK; - // If there was a previous reply, cleanup its state first. - if (this->message_state_->message_size != 0) - this->message_state_->reset (); - this->transport_->start_request (this->orb_core_, this->profile_, this->opname_, @@ -76,62 +72,6 @@ TAO_GIOP_Twoway_Asynch_Invocation::invoke (CORBA::ExceptionList &exceptions, int retval = this->invoke_i (ACE_TRY_ENV); ACE_CHECK_RETURN (retval); - // A TAO_INVOKE_EXCEPTION status, but no exception raised means that - // we have a user exception. - // @@ This is a bit brittle, think about a better implementation. - if (retval == TAO_INVOKE_EXCEPTION) - { - // Match the exception interface repository id with the - // exception in the exception list. - // This is important to decode the exception. - - CORBA::String_var buf; - - // Pull the exception ID out of the marshaling buffer. - if (this->inp_stream ().read_string (buf.inout ()) == 0) - { - ACE_THROW_RETURN (CORBA::MARSHAL (TAO_DEFAULT_MINOR_CODE, CORBA::COMPLETED_YES), - TAO_INVOKE_EXCEPTION); - } - - for (CORBA::ULong i = 0; - i < exceptions.count (); - i++) - { - CORBA::TypeCode_ptr tcp = exceptions.item (i, ACE_TRY_ENV); - ACE_CHECK_RETURN (TAO_INVOKE_EXCEPTION); - - const char *xid = tcp->id (ACE_TRY_ENV); - ACE_CHECK_RETURN (TAO_INVOKE_EXCEPTION); - - if (ACE_OS::strcmp (buf.in (), xid) != 0) - continue; - - const ACE_Message_Block* cdr = - this->inp_stream ().start (); - CORBA_Any any (tcp, 0, cdr); - CORBA_Exception *exception; - ACE_NEW_THROW_EX (exception, - CORBA_UnknownUserException (any), - CORBA::NO_MEMORY (TAO_DEFAULT_MINOR_CODE, CORBA::COMPLETED_YES)); - ACE_CHECK_RETURN (TAO_INVOKE_EXCEPTION); - - // @@ Think about a better way to raise the exception here, - // maybe we need some more macros? - ACE_TRY_ENV.exception (exception); - return TAO_INVOKE_EXCEPTION; - } - - // If we couldn't find the right exception, report it as - // CORBA::UNKNOWN. - - // @@ It would seem like if the remote exception is a - // UserException we can assume that the request was - // completed. - ACE_THROW_RETURN (CORBA::UNKNOWN (TAO_DEFAULT_MINOR_CODE, CORBA::COMPLETED_YES), - TAO_INVOKE_EXCEPTION); - } - return retval; } @@ -146,65 +86,6 @@ TAO_GIOP_Twoway_Asynch_Invocation::invoke (TAO_Exception_Data *excepts, int retval = this->invoke_i (ACE_TRY_ENV); ACE_CHECK_RETURN (retval); - // A TAO_INVOKE_EXCEPTION status, but no exception raised means that - // we have a user exception. - // @@ This is a bit brittle, think about a better implementation. - if (retval == TAO_INVOKE_EXCEPTION) - { - // Match the exception interface repository id with the - // exception in the exception list. - // This is important to decode the exception. - - CORBA::String_var buf; - - // Pull the exception ID out of the marshaling buffer. - if (this->inp_stream ().read_string (buf.inout ()) == 0) - { - ACE_THROW_RETURN (CORBA::MARSHAL (TAO_DEFAULT_MINOR_CODE, CORBA::COMPLETED_YES), - TAO_INVOKE_EXCEPTION); - } - - for (CORBA::ULong i = 0; - i < except_count; - i++) - { - CORBA::TypeCode_ptr tcp = excepts[i].tc; - const char *xid = tcp->id (ACE_TRY_ENV); - ACE_CHECK_RETURN (TAO_INVOKE_EXCEPTION); - - if (ACE_OS::strcmp (buf.in (), xid) != 0) - continue; - - // Match. - CORBA::Exception_ptr exception = excepts[i].alloc (); - - if (exception == 0) - ACE_THROW_RETURN (CORBA::NO_MEMORY (TAO_DEFAULT_MINOR_CODE, CORBA::COMPLETED_YES), - TAO_INVOKE_EXCEPTION); - - this->inp_stream ().decode (exception->_type (), - exception, 0, - ACE_TRY_ENV); - ACE_CHECK_RETURN (TAO_INVOKE_EXCEPTION); - - if (TAO_debug_level > 5) - ACE_DEBUG ((LM_DEBUG, - "TAO: (%P|%t) Raising exception %s\n", - buf.in ())); - - // @@ Think about a better way to raise the exception here, - // maybe we need some more macros? - ACE_TRY_ENV.exception (exception); - return TAO_INVOKE_EXCEPTION; - } - - // If we couldn't find the right exception, report it as - // CORBA::UNKNOWN. - - ACE_THROW_RETURN (CORBA::UNKNOWN (TAO_DEFAULT_MINOR_CODE, CORBA::COMPLETED_YES), - TAO_INVOKE_EXCEPTION); - } - return retval; } diff --git a/TAO/tao/Asynch_Invocation.h b/TAO/tao/Asynch_Invocation.h index d14755c52d0..fe318e91aa6 100644 --- a/TAO/tao/Asynch_Invocation.h +++ b/TAO/tao/Asynch_Invocation.h @@ -64,14 +64,14 @@ public: // Exceptions are allocated and decoded here. This reduces the // footprint of the generated stubs. - void get_value (CORBA::TypeCode_ptr tc, - void *value, - CORBA_Environment &TAO_IN_ENV = - TAO_default_environment ()); - // No CORBA::Context support (deprecated). - - TAO_InputCDR &inp_stream (void); - // Return the underlying input stream. + // TAO_InputCDR &inp_stream (void); + // // Return the underlying input stream. + // + // void get_value (CORBA::TypeCode_ptr tc, + // void *value, + // CORBA_Environment &TAO_IN_ENV = + // TAO_default_environment ()); + // // No CORBA::Context support (deprecated). private: int invoke_i (CORBA::Environment &ACE_TRY_ENV) @@ -80,9 +80,6 @@ private: // send/reply code and the system exceptions. private: - TAO_GIOP_Message_State *message_state_; - // Stream into which the reply is placed. - TAO_Asynch_Reply_Dispatcher *rd_; // Reply dispatcher for the current synchronous Asynch_Invocation. }; diff --git a/TAO/tao/Asynch_Invocation.i b/TAO/tao/Asynch_Invocation.i index f0ee0f78404..800b5f14595 100644 --- a/TAO/tao/Asynch_Invocation.i +++ b/TAO/tao/Asynch_Invocation.i @@ -11,30 +11,24 @@ TAO_GIOP_Twoway_Asynch_Invocation (TAO_Stub *stub, const TAO_Reply_Handler_Skeleton &reply_handler_skel, Messaging::ReplyHandler_ptr reply_handler_ptr) : TAO_GIOP_Invocation (stub, operation, orb_core), - message_state_ (0), rd_ (0) { - // Make a new message state. - ACE_NEW (message_state_, - TAO_GIOP_Message_State (orb_core)); - // New Reply Dispatcher. ACE_NEW (rd_, - TAO_Asynch_Reply_Dispatcher (message_state_, - reply_handler_skel, + TAO_Asynch_Reply_Dispatcher (reply_handler_skel, reply_handler_ptr)); } -ACE_INLINE TAO_InputCDR & -TAO_GIOP_Twoway_Asynch_Invocation::inp_stream (void) -{ - return this->message_state_->cdr; -} - -ACE_INLINE void -TAO_GIOP_Twoway_Asynch_Invocation::get_value (CORBA::TypeCode_ptr tc, - void *value, - CORBA::Environment &ACE_TRY_ENV) -{ - (void) this->inp_stream ().decode (tc, value, 0, ACE_TRY_ENV); -} +// ACE_INLINE TAO_InputCDR & +// TAO_GIOP_Twoway_Asynch_Invocation::inp_stream (void) +// { +// return this->message_state_->cdr; +// } +// +// ACE_INLINE void +// TAO_GIOP_Twoway_Asynch_Invocation::get_value (CORBA::TypeCode_ptr tc, +// void *value, +// CORBA::Environment &ACE_TRY_ENV) +// { +// (void) this->inp_stream ().decode (tc, value, 0, ACE_TRY_ENV); +// } diff --git a/TAO/tao/Client_Strategy_Factory.cpp b/TAO/tao/Client_Strategy_Factory.cpp index cf3a34b4b83..0514f80438a 100644 --- a/TAO/tao/Client_Strategy_Factory.cpp +++ b/TAO/tao/Client_Strategy_Factory.cpp @@ -19,7 +19,7 @@ TAO_Client_Strategy_Factory::create_iiop_profile_lock (void) } TAO_Transport_Mux_Strategy * -TAO_Client_Strategy_Factory::create_transport_mux_strategy (void) +TAO_Client_Strategy_Factory::create_transport_mux_strategy (TAO_ORB_Core *orb_core) { return 0; } diff --git a/TAO/tao/Client_Strategy_Factory.h b/TAO/tao/Client_Strategy_Factory.h index 609a20fa79e..9c4d13eb83d 100644 --- a/TAO/tao/Client_Strategy_Factory.h +++ b/TAO/tao/Client_Strategy_Factory.h @@ -25,6 +25,7 @@ class ACE_Lock; class TAO_Transport_Mux_Strategy; class TAO_Wait_Strategy; class TAO_Transport; +class TAO_ORB_Core; class TAO_Export TAO_Client_Strategy_Factory : public ACE_Service_Object { @@ -44,7 +45,7 @@ public: // <TAO_GIOP_Invocation::location_forward> and the // <TAO_GIOP_Invocation::start>. - virtual TAO_Transport_Mux_Strategy *create_transport_mux_strategy (void); + virtual TAO_Transport_Mux_Strategy *create_transport_mux_strategy (TAO_ORB_Core *orb_core); // Create the correct client request muxing strategy. virtual TAO_Wait_Strategy *create_wait_strategy (TAO_Transport *transport); diff --git a/TAO/tao/Invocation.cpp b/TAO/tao/Invocation.cpp index f2e4967a9cc..fe90d77a19a 100644 --- a/TAO/tao/Invocation.cpp +++ b/TAO/tao/Invocation.cpp @@ -374,10 +374,6 @@ TAO_GIOP_Twoway_Invocation::start (CORBA::Environment &ACE_TRY_ENV) this->TAO_GIOP_Invocation::start (ACE_TRY_ENV); ACE_CHECK; - // If there was a previous reply, cleanup its state first. - if (this->message_state_.message_size != 0) - this->message_state_.reset (); - this->transport_->start_request (this->orb_core_, this->profile_, this->opname_, @@ -746,10 +742,6 @@ TAO_GIOP_Locate_Request_Invocation::start (CORBA::Environment &ACE_TRY_ENV) this->TAO_GIOP_Invocation::start (ACE_TRY_ENV); ACE_CHECK; - // If there was a previous reply, cleanup its state first. - if (this->message_state_.message_size != 0) - this->message_state_.reset (); - this->transport_->start_locate (this->orb_core_, this->profile_, this->request_id_, diff --git a/TAO/tao/Invocation.h b/TAO/tao/Invocation.h index 9bc171d7df3..d287244a923 100644 --- a/TAO/tao/Invocation.h +++ b/TAO/tao/Invocation.h @@ -211,7 +211,7 @@ private: // send/reply code and the system exceptions. private: - TAO_GIOP_Message_State message_state_; + // TAO_GIOP_Message_State message_state_; // Stream into which the reply is placed. TAO_Synch_Reply_Dispatcher rd_; @@ -274,7 +274,7 @@ public: // return the underlying input stream private: - TAO_GIOP_Message_State message_state_; + // TAO_GIOP_Message_State message_state_; // Stream into which the request is placed. TAO_Synch_Reply_Dispatcher rd_; diff --git a/TAO/tao/Invocation.i b/TAO/tao/Invocation.i index d4dad8ee56f..96375b29bec 100644 --- a/TAO/tao/Invocation.i +++ b/TAO/tao/Invocation.i @@ -24,16 +24,14 @@ TAO_GIOP_Twoway_Invocation:: TAO_GIOP_Twoway_Invocation (TAO_Stub *stub, const char *operation, TAO_ORB_Core *orb_core) - : TAO_GIOP_Invocation (stub, operation, orb_core), - message_state_ (orb_core), - rd_ (&message_state_) + : TAO_GIOP_Invocation (stub, operation, orb_core) { } ACE_INLINE TAO_InputCDR & TAO_GIOP_Twoway_Invocation::inp_stream (void) { - return this->message_state_.cdr; + return this->rd_.message_state ()->cdr; } ACE_INLINE void @@ -68,14 +66,12 @@ ACE_INLINE TAO_GIOP_Locate_Request_Invocation:: TAO_GIOP_Locate_Request_Invocation (TAO_Stub *stub, TAO_ORB_Core *orb_core) - : TAO_GIOP_Invocation (stub, 0, orb_core), - message_state_ (orb_core), - rd_ (&message_state_) + : TAO_GIOP_Invocation (stub, 0, orb_core) { } ACE_INLINE TAO_InputCDR & TAO_GIOP_Locate_Request_Invocation::inp_stream (void) { - return this->message_state_.cdr; + return this->rd_.message_state ()->cdr; } diff --git a/TAO/tao/Pluggable.cpp b/TAO/tao/Pluggable.cpp index 528a1b38a95..47c879073a1 100644 --- a/TAO/tao/Pluggable.cpp +++ b/TAO/tao/Pluggable.cpp @@ -162,7 +162,7 @@ TAO_Transport::TAO_Transport (CORBA::ULong tag, this->ws_ = orb_core->client_factory ()->create_wait_strategy (this); // Create TMS now. - this->tms_ = orb_core->client_factory ()->create_transport_mux_strategy (); + this->tms_ = orb_core->client_factory ()->create_transport_mux_strategy (orb_core); } TAO_Transport::~TAO_Transport (void) diff --git a/TAO/tao/Reply_Dispatcher.cpp b/TAO/tao/Reply_Dispatcher.cpp index b9d4f42e1ac..caa019766bc 100644 --- a/TAO/tao/Reply_Dispatcher.cpp +++ b/TAO/tao/Reply_Dispatcher.cpp @@ -26,8 +26,8 @@ TAO_Reply_Dispatcher::message_state (void) const // ********************************************************************* // Constructor. -TAO_Synch_Reply_Dispatcher::TAO_Synch_Reply_Dispatcher (TAO_GIOP_Message_State* message_state) - : message_state_ (message_state) +TAO_Synch_Reply_Dispatcher::TAO_Synch_Reply_Dispatcher (void) + : message_state_ (0) { } @@ -43,14 +43,9 @@ TAO_Synch_Reply_Dispatcher::dispatch_reply (CORBA::ULong reply_status, TAO_GIOP_ServiceContextList &reply_ctx, TAO_GIOP_Message_State *message_state) { - ACE_ASSERT (message_state == this->message_state_); - // @@ Notice that the message is ignored because we assume that - // the message_state is the same we are giving down to the ORB to - // use.... I.E. this class cannot be used with Muxed stream, but - // chances are that the way to implement that will change several - // times in the next few weeks. this->reply_status_ = reply_status; this->version_ = version; + this->message_state_ = message_state; // Steal the buffer, that way we don't do any unnecesary copies of // this data. @@ -71,11 +66,9 @@ TAO_Synch_Reply_Dispatcher::message_state (void) const // ********************************************************************* // Constructor. -TAO_Asynch_Reply_Dispatcher::TAO_Asynch_Reply_Dispatcher (TAO_GIOP_Message_State *message_state, - const TAO_Reply_Handler_Skeleton &reply_handler_skel, +TAO_Asynch_Reply_Dispatcher::TAO_Asynch_Reply_Dispatcher (const TAO_Reply_Handler_Skeleton &reply_handler_skel, Messaging::ReplyHandler_ptr reply_handler_ptr) - : message_state_ (message_state), - reply_handler_skel_ (reply_handler_skel), + : reply_handler_skel_ (reply_handler_skel), reply_handler_ (reply_handler_ptr) { } @@ -83,8 +76,6 @@ TAO_Asynch_Reply_Dispatcher::TAO_Asynch_Reply_Dispatcher (TAO_GIOP_Message_State // Destructor. TAO_Asynch_Reply_Dispatcher::~TAO_Asynch_Reply_Dispatcher (void) { - delete message_state_; - message_state_ = 0; } // Dispatch the reply. @@ -94,14 +85,9 @@ TAO_Asynch_Reply_Dispatcher::dispatch_reply (CORBA::ULong reply_status, TAO_GIOP_ServiceContextList &reply_ctx, TAO_GIOP_Message_State *message_state) { - ACE_ASSERT (message_state == this->message_state_); - // @@ Notice that the message is ignored because we assume that - // the message_state is the same we are giving down to the ORB to - // use.... I.E. this class cannot be used with Muxed stream, but - // chances are that the way to implement that will change several - // times in the next few weeks. this->reply_status_ = reply_status; this->version_ = version; + this->message_state_ = message_state; // Steal the buffer, that way we don't do any unnecesary copies of // this data. diff --git a/TAO/tao/Reply_Dispatcher.h b/TAO/tao/Reply_Dispatcher.h index 983467f7b46..d1d00d35ab5 100644 --- a/TAO/tao/Reply_Dispatcher.h +++ b/TAO/tao/Reply_Dispatcher.h @@ -48,10 +48,7 @@ public: // Dispatch the reply. virtual TAO_GIOP_Message_State *message_state (void) const; - // Get the Message State - // By default it returns <0> but if the request can pre-allocate one - // for us then we can return it and pass it along for non-Muxed - // transports. + // Get the Message State into which the reply has been read. }; // ********************************************************************* @@ -66,7 +63,7 @@ class TAO_Export TAO_Synch_Reply_Dispatcher : public TAO_Reply_Dispatcher // public: - TAO_Synch_Reply_Dispatcher (TAO_GIOP_Message_State* message_state); + TAO_Synch_Reply_Dispatcher (void); // Constructor. virtual ~TAO_Synch_Reply_Dispatcher (void); @@ -76,7 +73,7 @@ public: // Get the reply status. const TAO_GIOP_Version& version (void) const; - // Get the GIOP version + // Get the GIOP version. TAO_GIOP_ServiceContextList& reply_ctx (void); // Get the reply context @@ -118,8 +115,7 @@ class TAO_Export TAO_Asynch_Reply_Dispatcher : public TAO_Reply_Dispatcher // public: - TAO_Asynch_Reply_Dispatcher (TAO_GIOP_Message_State* message_state, - const TAO_Reply_Handler_Skeleton &reply_handler_skel, + TAO_Asynch_Reply_Dispatcher (const TAO_Reply_Handler_Skeleton &reply_handler_skel, Messaging::ReplyHandler_ptr reply_handler_ptr); // Constructor. diff --git a/TAO/tao/Transport_Mux_Strategy.cpp b/TAO/tao/Transport_Mux_Strategy.cpp index 1e6f6349f1d..58bd1ffaea3 100644 --- a/TAO/tao/Transport_Mux_Strategy.cpp +++ b/TAO/tao/Transport_Mux_Strategy.cpp @@ -22,10 +22,11 @@ TAO_Transport_Mux_Strategy::~TAO_Transport_Mux_Strategy (void) // ********************************************************************* -TAO_Exclusive_TMS::TAO_Exclusive_TMS (void) +TAO_Exclusive_TMS::TAO_Exclusive_TMS (TAO_ORB_Core *orb_core) : request_id_generator_ (0), request_id_ (0), - rd_ (0) + rd_ (0), + message_state_ (orb_core) { } @@ -49,6 +50,15 @@ TAO_Exclusive_TMS::bind_dispatcher (CORBA::ULong request_id, { this->request_id_ = request_id; this->rd_ = rd; + + // @@ Carlos: This method marks the <start> of an invocation. This + // should be the correct place to <reset> the message state. Do I + // make sense? (Alex). + + // If there was a previous reply, cleanup its state first. + if (this->message_state_.message_size != 0) + this->message_state_.reset (); + return 0; } @@ -59,6 +69,11 @@ TAO_Exclusive_TMS::dispatch_reply (CORBA::ULong request_id, TAO_GIOP_ServiceContextList& reply_ctx, TAO_GIOP_Message_State* message_state) { + // There can be only one message state possible. Just do a sanity + // check here. + ACE_ASSERT (message_state == &(this->message_state_)); + + // Check the ids. if (this->request_id_ != request_id) { if (TAO_debug_level > 0) @@ -84,13 +99,18 @@ TAO_Exclusive_TMS::get_message_state (void) if (this->rd_ == 0) return 0; - return this->rd_->message_state (); + return &(this->message_state_); } -// NOOP function. void TAO_Exclusive_TMS::destroy_message_state (TAO_GIOP_Message_State *) { + // We dont have to delete the message state. But we can reset it to + // receive the next incoming message. + // If there was a previous reply, cleanup its state first. + // if (this->message_state_.message_size != 0) + // this->message_state_.reset (); + // @@ We do this already in the <bind_dispatcher>. } // ********************************************************************* diff --git a/TAO/tao/Transport_Mux_Strategy.h b/TAO/tao/Transport_Mux_Strategy.h index d1163ddc6e8..592135b2b5e 100644 --- a/TAO/tao/Transport_Mux_Strategy.h +++ b/TAO/tao/Transport_Mux_Strategy.h @@ -90,7 +90,7 @@ class TAO_Export TAO_Exclusive_TMS : public TAO_Transport_Mux_Strategy // public: - TAO_Exclusive_TMS (void); + TAO_Exclusive_TMS (TAO_ORB_Core *orb_core); // Constructor. virtual ~TAO_Exclusive_TMS (void); @@ -128,6 +128,9 @@ protected: TAO_Reply_Dispatcher *rd_; // Reply Dispatcher corresponding to the request. + + TAO_GIOP_Message_State message_state_; + // Message state to read the incoming message. }; // ********************************************************************* diff --git a/TAO/tao/default_client.cpp b/TAO/tao/default_client.cpp index 022e915d6a5..ab994a64462 100644 --- a/TAO/tao/default_client.cpp +++ b/TAO/tao/default_client.cpp @@ -136,7 +136,7 @@ TAO_Default_Client_Strategy_Factory::create_iiop_profile_lock (void) // Create the correct client transport muxing strategy. TAO_Transport_Mux_Strategy * -TAO_Default_Client_Strategy_Factory::create_transport_mux_strategy (void) +TAO_Default_Client_Strategy_Factory::create_transport_mux_strategy (TAO_ORB_Core *orb_core) { TAO_Transport_Mux_Strategy *tms = 0; @@ -148,7 +148,7 @@ TAO_Default_Client_Strategy_Factory::create_transport_mux_strategy (void) // @@ Alex: Always creating Exclusive TMS. (Alex). ACE_NEW_RETURN (tms, - TAO_Exclusive_TMS, + TAO_Exclusive_TMS (orb_core), 0); return tms; diff --git a/TAO/tao/default_client.h b/TAO/tao/default_client.h index 23ba486d815..1eb7a101d17 100644 --- a/TAO/tao/default_client.h +++ b/TAO/tao/default_client.h @@ -47,7 +47,7 @@ public: // the TAO_GIOP_Invocation::location_forward and the // TAO_GIOP_Invocation::start - TAO_Transport_Mux_Strategy *create_transport_mux_strategy (void); + TAO_Transport_Mux_Strategy *create_transport_mux_strategy (TAO_ORB_Core *orb_core); // Create the correct client request muxing strategy. TAO_Wait_Strategy *create_wait_strategy (TAO_Transport *transport); |