#include <Invocation_Adapter.h>
Collaboration diagram for TAO::Invocation_Adapter:
Public Member Functions | |
Invocation_Adapter (CORBA::Object_ptr target, Argument **args, int arg_number, const char *operation, int op_len, Collocation_Proxy_Broker *cpb, TAO::Invocation_Type type=TAO_TWOWAY_INVOCATION, TAO::Invocation_Mode mode=TAO_SYNCHRONOUS_INVOCATION) | |
virtual | ~Invocation_Adapter (void) |
virtual void | invoke (TAO::Exception_Data *ex, unsigned long ex_count ACE_ENV_ARG_DECL) |
Invoke the target, and used by the generated code. | |
Protected Member Functions | |
virtual void | invoke_i (TAO_Stub *stub, TAO_Operation_Details &details ACE_ENV_ARG_DECL) |
bool | get_timeout (TAO_Stub *stub, ACE_Time_Value &val) |
TAO_Stub * | get_stub (ACE_ENV_SINGLE_ARG_DECL) const |
Helper method that extracts TAO_Stub from the target object. | |
void | object_forwarded (CORBA::Object_var &effective_target, TAO_Stub *stub ACE_ENV_ARG_DECL) |
void | set_response_flags (TAO_Stub *stub, TAO_Operation_Details &details) |
Helper method to set the response flags within details. | |
Helper methods for making different types of invocations. | |
These methods useful for various types of invocations like SII, AMI, DII and DSI. All the subclasses implement these methods to get the right behaviour at their level. | |
virtual Invocation_Status | invoke_remote_i (TAO_Stub *stub, TAO_Operation_Details &details, CORBA::Object_var &effective_target, ACE_Time_Value *&max_wait_time ACE_ENV_ARG_DECL) |
virtual Invocation_Status | invoke_collocated_i (TAO_Stub *stub, TAO_Operation_Details &details, CORBA::Object_var &effective_target, Collocation_Strategy strat ACE_ENV_ARG_DECL) |
Make a collocated call. | |
virtual Invocation_Status | invoke_twoway (TAO_Operation_Details &details, CORBA::Object_var &effective_target, Profile_Transport_Resolver &r, ACE_Time_Value *&max_wait_time ACE_ENV_ARG_DECL) |
Helper method to make a two way invocation. | |
virtual Invocation_Status | invoke_oneway (TAO_Operation_Details &details, CORBA::Object_var &effective_target, Profile_Transport_Resolver &r, ACE_Time_Value *&max_wait_time ACE_ENV_ARG_DECL) |
Helper method to make a one way invocation. | |
Protected Attributes | |
CORBA::Object_ptr | target_ |
The target object on which this invocation is carried out. | |
Argument ** | args_ |
Array of arguments for this operation. | |
const int | number_args_ |
Number of arguments for this operation. | |
const char * | operation_ |
Name of the operation. | |
const int | op_len_ |
String length of the operation name. | |
Collocation_Proxy_Broker * | cpb_ |
Collocation proxy broker for this operation. | |
Invocation_Type | type_ |
The invocation type. | |
Invocation_Mode | mode_ |
The invocation mode. | |
Private Member Functions | |
Invocation_Adapter (void) | |
Dont allow default initializations. | |
Invocation_Adapter & | operator= (const Invocation_Adapter &) |
The main objective of this class is to adapt the type and invocation specific information declared in the IDL by the application and convert them as CORBA invocations to the target object. Implementation of this class knows how to make invocations on a collocated or a remote object.
This adapter class serves as the base class for various types of invocations like AMI, DII, DSI etc. Adapter classes for AMI, DII, DSI inherit from this class and their local behavioural information before kicking off an invocation.
@ More info.. Wafer thin inclusions All stuff created on stack Only handles starts and restarts
|
|
|
|
|
Dont allow default initializations.
|
|
Helper method that extracts TAO_Stub from the target object.
|
|
Helper function that extracts the roundtrip timeout policies set in the ORB. |
|
Invoke the target, and used by the generated code. The implementation decides whether the target is remote or collocated and takes the right decision.
|
|
Make a collocated call. This method creates an object that takes care of making collocated invocations and calls invoke () on it. If the invoke () returns with a location forwarded reply we return a restart
|
|
The stub pointer passed to this call has all the details about the object to which the invocation needs to be routed to. The implementation of this method looks if we are collocated or not and takes care of reinvoking the target if it receives forwarding information or if the first invocation fails for some reason, like a loss of connection during send () etc. |
|
Helper method to make a one way invocation. This method creates a synchronous oneway invocation object to which the actual task of request handling is delegated. Once the invocation returns this method checks whether the request is forwarded to a new location to take appropriate action. |
|
Helper method that prepares the necessary stuff for a remote invocation. |
|
Helper method to make a two way invocation. This method creates a synchronous twoway invocation object to which the actual task of request handling is delegated. Once the invocation returns this method checks whether the request is forwarded to a new location. |
|
Helper method that takes care of setting the profiles within the stub object if the target gets forwarded |
|
|
|
Helper method to set the response flags within details.
|
|
Array of arguments for this operation.
|
|
Collocation proxy broker for this operation.
|
|
The invocation mode.
|
|
Number of arguments for this operation. This includes the return values too |
|
String length of the operation name.
|
|
Name of the operation.
|
|
The target object on which this invocation is carried out.
|
|
The invocation type.
|