#include <Invocation.h>
Inheritance diagram for TAO_GIOP_Invocation:
Public Methods | |||
TAO_GIOP_Invocation (void) | |||
Default constructor. This should never get called, it is here only to appease older versions of g++. More... | |||
TAO_GIOP_Invocation (TAO_Stub *data, const char *operation, CORBA::ULong opname_len, CORBA::Boolean argument_flag, TAO_ORB_Core *orb_core, int byte_order=TAO_ENCAP_BYTE_ORDER) | |||
Constructor. More... | |||
virtual | ~TAO_GIOP_Invocation (void) | ||
This destructor is virtual so that the derived synchronous invocation classes can call <idle> method on the <Transport>, if they want to. More... | |||
void | prepare_header (CORBA::Octet response_flags ACE_ENV_ARG_DECL) throw (CORBA::SystemException) | ||
Initialize the Request header. More... | |||
TAO_Service_Context & | request_service_context (void) | ||
Accessor to the request ServiceContextList. Only valid when sending a request message. More... | |||
TAO_Service_Context & | reply_service_context (void) | ||
Accessor to the reply ServiceContextList. Only valid when after receiving a reply message. More... | |||
CORBA::ULong | request_id (void) const | ||
Return the request id of this invocation. More... | |||
const char * | operation (void) | ||
Return the name of the operation being invoked. More... | |||
TAO_OutputCDR & | out_stream (void) | ||
Return the underlying output stream. More... | |||
void | restart_flag (CORBA::Boolean flag) | ||
Set the value for the restart flag. More... | |||
int | close_connection (void) | ||
Resets the forwarding profile and behaves like we are fowarded (to the same server). More... | |||
void | start (ACE_ENV_SINGLE_ARG_DECL) throw (CORBA::SystemException) | ||
Establishes a connection to the remote server, initializes the GIOP headers in the output CDR. More... | |||
int | perform_call (TAO_Transport_Descriptor_Interface &desc ACE_ENV_ARG_DECL) | ||
Called by the invocation endpoint selector for each selected endpoint. More... | |||
void | init_inconsistent_policies (ACE_ENV_SINGLE_ARG_DECL) throw (CORBA::SystemException) | ||
Dynamically allocate inconsistent_policies_ PolicyList. More... | |||
CORBA::PolicyList * | get_inconsistent_policies (void) | ||
Return PolicyList stored in inconsistent_policies_ and give up its ownership. User must deallocate memory. More... | |||
int | location_forward (CORBA::Object_ptr forward ACE_ENV_ARG_DECL) throw (CORBA::SystemException) | ||
Add the given object reference to the list of forward profiles. More... | |||
CORBA::Object_ptr | forward_reference (void) | ||
Return the object reference returned in the LOCATION_FORWARD reply. The return reference is only valid if the reply status for the current reply is TAO_INVOKE_RESTART. More... | |||
CORBA::Boolean | received_location_forward (void) const | ||
Returns true if a location forward was. More... | |||
TAO_Stub * | stub (void) | ||
Accessor for the stub associated with this invocation. More... | |||
TAO_Transport *& | transport (void) | ||
Return the TAO_Transport in use for the current Invocation object. More... | |||
CORBA::PolicyList_var & | inconsistent_policies () | ||
Accessor for the stub associated with this invocation. More... | |||
TAO_Endpoint * | endpoint (void) | ||
Endpoint Accessor. More... | |||
void | endpoint (TAO_Endpoint *ep) | ||
TAO_Profile * | profile (void) | ||
Profile Accessor. More... | |||
void | profile (TAO_Profile *p) | ||
Profile Accessor. More... | |||
TAO_ORB_Core * | orb_core (void) | ||
ORB_Core Accessor. More... | |||
ACE_Time_Value * | max_wait_time (void) | ||
Return the current timeout value for the current invocation. More... | |||
CORBA::ULong & | profile_index (void) | ||
Protected Methods | |||
int | invoke (CORBA::Boolean write_semantics ACE_ENV_ARG_DECL) throw (CORBA::SystemException) | ||
Returns TAO_INVOKE_RESTART if the write call failed and the request must be re-attempted. More... | |||
int | location_forward (TAO_InputCDR &inp_stream ACE_ENV_ARG_DECL) throw (CORBA::SystemException) | ||
Helper method, the response for a Request or LocateRequest was a LOCATION_FORWARD or TAO_GIOP_OBJECT_FORWARD. More... | |||
void | location_forward_i (TAO_Stub *stubobj ACE_ENV_ARG_DECL) throw (CORBA::SystemException) | ||
Helper method that factors out code common to the location_forward() above, and adds the given object reference to the list of a forward profiles. More... | |||
Protected Attributes | |||
TAO_Stub * | stub_ | ||
The object on which this invocation is going. More... | |||
char | buffer_ [ACE_CDR::DEFAULT_BUFSIZE] | ||
Buffer used for both the output and input CDR streams, this is "safe" because we only one of the streams at a time. More... | |||
TAO_Operation_Details | op_details_ | ||
The relevant operation detail. More... | |||
TAO_Target_Specification | target_spec_ | ||
TAO_OutputCDR | out_stream_ | ||
Stream into which the response is placed. More... | |||
TAO_ORB_Core * | orb_core_ | ||
The orb_core context where we make this invocation. More... | |||
TAO_Transport * | transport_ | ||
This invocation is using this transport.
| |||
TAO_Invocation_Endpoint_Selector * | endpoint_selector_ | ||
Strategy for making decisions about which endpoint/profile to use for invocation. More... | |||
CORBA::PolicyList_var | inconsistent_policies_ | ||
If current effective policies cause the invocation to raise CORBA::INV_POLICY exception, the conflicting/problematic policies are stored in this list. More... | |||
TAO_Profile * | profile_ | ||
This invocation is using this profile. More... | |||
TAO_Endpoint * | endpoint_ | ||
This invocation is using this endpoint from
| |||
ACE_Countdown_Time * | countdown_ | ||
Keep track of the remaining time for this invocation. More... | |||
CORBA::Boolean | restart_flag_ | ||
This flag is turned on when the previous invocation on an endpoint or a profile returned a TAO_INVOKE_RESTART. More... | |||
CORBA::Object_var | forward_reference_ | ||
Object reference returned in a LOCATION_FORWARD reply. More... | |||
CORBA::Boolean | received_location_forward_ | ||
Flag is true when a LOCATION_FORWARD reply is received. More... | |||
CORBA::ULong | profile_index_ | ||
Keep the position of the profile that should be used in performing the invocation. More... | |||
ACE_Time_Value | max_wait_time_value_ | ||
ACE_Time_Value * | max_wait_time_ |
This class connects (or lookups a connection from the cache) to the remote server, builds the CDR stream for the Request, send the CDR stream and expects the response and interprets the incoming CDR stream.
|
Default constructor. This should never get called, it is here only to appease older versions of g++.
|
|
Constructor.
|
|
This destructor is virtual so that the derived synchronous invocation classes can call <idle> method on the <Transport>, if they want to. All the synchronous invocations <idle> the Transport, but asynchronous invocations do not do that. |
|
Resets the forwarding profile and behaves like we are fowarded (to the same server).
|
|
|
|
Endpoint Accessor.
|
|
Return the object reference returned in the LOCATION_FORWARD reply. The return reference is only valid if the reply status for the current reply is TAO_INVOKE_RESTART.
|
|
Return PolicyList stored in inconsistent_policies_ and give up its ownership. User must deallocate memory.
|
|
Accessor for the stub associated with this invocation.
|
|
Dynamically allocate inconsistent_policies_ PolicyList.
|
|
Returns TAO_INVOKE_RESTART if the write call failed and the request must be re-attempted.
|
|
Helper method, the response for a Request or LocateRequest was a LOCATION_FORWARD or TAO_GIOP_OBJECT_FORWARD. In any case we must demarshal the object reference and setup the profiles. The returned forward object reference can be retrieved by invoking the forward_reference() method in this class. It returns TAO_INVOKE_RESTART unless an exception is raised. |
|
Add the given object reference to the list of forward profiles. This basically emulates a LOCATION_FORWARD reply from the server. It is needed by such things as the PortableInterceptor::ForwardRequest exception. The forward object reference can be retrieved by invoking the forward_reference() method in this class. It returns TAO_INVOKE_RESTART unless an exception is raised. |
|
Helper method that factors out code common to the location_forward() above, and adds the given object reference to the list of a forward profiles. The forward object reference can be retrieved by invoking the forward_reference() method in this class. |
|
Return the current timeout value for the current invocation.
|
|
Return the name of the operation being invoked.
|
|
ORB_Core Accessor.
|
|
Return the underlying output stream.
|
|
Called by the invocation endpoint selector for each selected endpoint.
|
|
Initialize the Request header. The <message_size> field of the GIOP header is left blank and must be filled later. The function only returns once a connection has been succesfully established *OR* all profiles have been tried. In that case it raises the CORBA::TRANSIENT exception. |
|
Profile Accessor.
|
|
Profile Accessor.
|
|
|
|
Returns true if a location forward was.
|
|
Accessor to the reply ServiceContextList. Only valid when after receiving a reply message.
|
|
Return the request id of this invocation.
|
|
Accessor to the request ServiceContextList. Only valid when sending a request message.
|
|
Set the value for the restart flag.
|
|
Establishes a connection to the remote server, initializes the GIOP headers in the output CDR.
Reimplemented in TAO_GIOP_Asynch_Invocation, TAO_GIOP_Twoway_Invocation, TAO_GIOP_Oneway_Invocation, and TAO_GIOP_Locate_Request_Invocation. |
|
Accessor for the stub associated with this invocation.
|
|
Return the TAO_Transport in use for the current Invocation object.
|
|
Buffer used for both the output and input CDR streams, this is "safe" because we only one of the streams at a time.
|
|
Keep track of the remaining time for this invocation.
|
|
This invocation is using this endpoint from
|
|
Strategy for making decisions about which endpoint/profile to use for invocation.
|
|
Object reference returned in a LOCATION_FORWARD reply. This reference is only valid when the reply status is TAO_INVOKE_RESTART and |
|
If current effective policies cause the invocation to raise CORBA::INV_POLICY exception, the conflicting/problematic policies are stored in this list. This is used by
|
|
|
|
|
|
The relevant operation detail.
|
|
The orb_core context where we make this invocation.
|
|
Stream into which the response is placed.
|
|
This invocation is using this profile.
|
|
Keep the position of the profile that should be used in performing the invocation.
|
|
Flag is true when a LOCATION_FORWARD reply is received.
|
|
This flag is turned on when the previous invocation on an endpoint or a profile returned a TAO_INVOKE_RESTART. FT CORBA relies on this flag for guarenteeing unique id's during reinvocations. |
|
The object on which this invocation is going.
|
|
|
|
This invocation is using this transport.
|