#include <DII_Invocation_Adapter.h>
Inheritance diagram for TAO::DII_Invocation_Adapter:
Public Member Functions | |
DII_Invocation_Adapter (CORBA::Object *target, Argument **args, int arg_number, const char *operation, size_t op_len, CORBA::ExceptionList *exception, CORBA::Request *r, Invocation_Mode mode=TAO_DII_INVOCATION) | |
virtual | ~DII_Invocation_Adapter (void) |
Protected Member Functions | |
virtual Invocation_Status | invoke_twoway (TAO_Operation_Details &op, CORBA::Object_var &effective_target, Profile_Transport_Resolver &r, ACE_Time_Value *&max_wait_time) |
virtual Invocation_Status | invoke_collocated_i (TAO_Stub *stub, TAO_Operation_Details &details, CORBA::Object_var &effective_target, Collocation_Strategy strat) |
Private Member Functions | |
DII_Invocation_Adapter (void) | |
Dont allow default initializations. | |
DII_Invocation_Adapter (const DII_Invocation_Adapter &) | |
DII_Invocation_Adapter & | operator= (const DII_Invocation_Adapter &) |
Private Attributes | |
CORBA::ExceptionList * | exception_list_ |
CORBA::Request * | request_ |
Definition at line 58 of file DII_Invocation_Adapter.h.
|
Definition at line 28 of file DII_Invocation_Adapter.cpp. References TAO::TAO_TWOWAY_INVOCATION.
00037 : Invocation_Adapter (target, 00038 args, 00039 arg_number, 00040 operation, 00041 op_len, 00042 0, // Collocation Proxy broker pointer 00043 TAO_TWOWAY_INVOCATION, 00044 mode) 00045 , exception_list_ (excp) 00046 , request_ (r) 00047 { 00048 } |
|
Definition at line 50 of file DII_Invocation_Adapter.cpp.
00051 { 00052 } |
|
Dont allow default initializations.
|
|
|
|
Reimplemented from TAO::Invocation_Adapter. Definition at line 55 of file DII_Invocation_Adapter.cpp. References TAO_Operation_Details::cac(), and ACE_Dynamic_Service< TYPE >::instance().
00060 { 00061 TAO_DII_Arguments_Converter_Impl* dii_arguments_converter 00062 = ACE_Dynamic_Service<TAO_DII_Arguments_Converter_Impl>::instance ( 00063 "DII_Arguments_Converter"); 00064 details.cac (dii_arguments_converter); 00065 00066 return Invocation_Adapter::invoke_collocated_i (stub, 00067 details, 00068 effective_target, 00069 strat); 00070 } |
|
Reimplemented from TAO::Invocation_Adapter. Reimplemented in TAO::DII_Asynch_Invocation_Adapter. Definition at line 73 of file DII_Invocation_Adapter.cpp. References CORBA::Request::_tao_byte_order(), TAO::Invocation_Status, TAO::Invocation_Base::is_forwarded(), TAO_Transport::messaging_object(), TAO::Invocation_Adapter::object_forwarded(), TAO_Pluggable_Messaging::out_stream(), TAO::DII_Invocation::remote_invocation(), TAO::Invocation_Base::reply_status(), request_, ACE_OutputCDR::reset_byte_order(), TAO::Invocation_Base::steal_forwarded_reference(), TAO::Profile_Transport_Resolver::stub(), TAO::TAO_DII_INVOCATION, TAO::TAO_INVOKE_RESTART, TAO_PLUGGABLE_MESSAGE_LOCATION_FORWARD_PERM, TAO::TAO_TWOWAY_INVOCATION, and TAO::Profile_Transport_Resolver::transport().
00078 { 00079 // Simple sanity check 00080 if (this->mode_ != TAO_DII_INVOCATION || 00081 this->type_ != TAO_TWOWAY_INVOCATION) 00082 { 00083 throw ::CORBA::INTERNAL ( 00084 CORBA::SystemException::_tao_minor_code ( 00085 TAO::VMCID, 00086 EINVAL), 00087 CORBA::COMPLETED_NO); 00088 } 00089 00090 r.transport ()->messaging_object ()->out_stream ().reset_byte_order ( 00091 request_->_tao_byte_order ()); 00092 00093 TAO::DII_Invocation synch (this->target_, 00094 r, 00095 op, 00096 this->exception_list_, 00097 this->request_); 00098 00099 00100 Invocation_Status status = synch.remote_invocation (max_wait_time); 00101 00102 if (status == TAO_INVOKE_RESTART && synch.is_forwarded ()) 00103 { 00104 effective_target = synch.steal_forwarded_reference (); 00105 00106 #if TAO_HAS_INTERCEPTORS == 1 00107 CORBA::Boolean const permanent_forward = 00108 (synch.reply_status() == TAO_PLUGGABLE_MESSAGE_LOCATION_FORWARD_PERM); 00109 #else 00110 CORBA::Boolean const permanent_forward = false; 00111 #endif 00112 this->object_forwarded (effective_target, 00113 r.stub (), 00114 permanent_forward); 00115 } 00116 return status; 00117 } |
|
|
|
Definition at line 112 of file DII_Invocation_Adapter.h. |
|
Definition at line 114 of file DII_Invocation_Adapter.h. Referenced by invoke_twoway(). |