TAO
2.1.7
|
All the action for a synchronous twoway invocation happen here. More...
#include <Synch_Invocation.h>
Public Member Functions | |
Synch_Twoway_Invocation (CORBA::Object_ptr otarget, Profile_Transport_Resolver &resolver, TAO_Operation_Details &detail, bool response_expected=true) | |
Constructor used by TAO::Invocation_Adapter. | |
Invocation_Status | remote_twoway (ACE_Time_Value *max_wait_time) |
![]() | |
Remote_Invocation (CORBA::Object_ptr otarget, Profile_Transport_Resolver &resolver, TAO_Operation_Details &detail, bool response_expected) | |
![]() | |
virtual | ~Invocation_Base (void) |
TAO_Stub * | stub (void) const |
Accessor and mutator methods. | |
CORBA::Object_ptr | forwarded_reference (void) |
void | forwarded_reference (CORBA::Object_ptr o) |
Accessor and mutator methods. | |
TAO_Service_Context & | request_service_context (void) |
Accessors for the service context list. | |
TAO_Service_Context & | reply_service_context (void) |
Accessor and mutator methods. | |
CORBA::Object_ptr | steal_forwarded_reference (void) |
Return the forwarded object location by loosing ownership. | |
CORBA::Object_ptr | effective_target (void) const |
Return the effective target of the invocation. | |
CORBA::Object_ptr | target (void) const |
Return the target object. | |
CORBA::Boolean | response_expected (void) const |
Does this invocation return a response? | |
GIOP::ReplyStatusType | reply_status (void) const |
Accessor of reply_status of the invocation. | |
void | reply_status (GIOP::ReplyStatusType s) |
Mutator of reply_status of the invocation. | |
TAO_Operation_Details & | operation_details (void) |
The operaton details of the invocation. | |
size_t & | stack_size (void) |
CORBA::Exception * | caught_exception (void) |
The client requestor adapter. | |
TAO::Invocation_Status | invoke_status (void) const |
Invocation status. | |
void | invoke_status (Invocation_Status s) |
Mutator to set the invocation status. | |
PortableInterceptor::ReplyStatus | pi_reply_status (void) const |
The client requestor adapter. | |
bool | is_remote_request () const |
Private Member Functions | |
Invocation_Status | check_reply_status (TAO_Synch_Reply_Dispatcher &rd) |
Additional Inherited Members | |
![]() | |
Profile_Transport_Resolver & | resolver_ |
Our resolver. | |
![]() | |
TAO_Operation_Details & | details_ |
The operation details on which we are operating on. | |
CORBA::Object_var | forwarded_to_ |
Forwarded object reference. | |
bool | response_expected_ |
Is response expected? | |
GIOP::ReplyStatusType | reply_status_ |
A GIOP reply status of the invocation. | |
ClientRequestInterceptor_Adapter * | cri_adapter_ |
The client requestor adapter. | |
ServerRequestInterceptor_Adapter * | sri_adapter_ |
The client requestor adapter. | |
size_t | stack_size_ |
The client requestor adapter. | |
TAO::Invocation_Status | invoke_status_ |
The client requestor adapter. |
All the action for a synchronous twoway invocation happen here.
An object of this type is created by TAO::Invocation_Adapter and invokes a method on this class. The method takes care of creating and sending a request, waiting for a reply and demarshalling the reply for the client.
TAO::Synch_Twoway_Invocation::Synch_Twoway_Invocation | ( | CORBA::Object_ptr | otarget, |
Profile_Transport_Resolver & | resolver, | ||
TAO_Operation_Details & | detail, | ||
bool | response_expected = true |
||
) |
Constructor used by TAO::Invocation_Adapter.
otarget | The original target on which this invocation was started. This is there to be passed up to its parent class. |
resolver | The profile and transport holder. |
detail | Operation details of the invocation on the target |
response_expected | Flag to indicate whether the operation encapsulated by op returns a response or not. |
|
private |
Helper method that checks the reply status of the replies and takes appropriate action. This method returns an exception when there is an error.
|
protected |
Helper method used to handle system exceptions from the remote objects.
There has been a unanimous view that this is not the right way to do things. But a need to be compliant is forcing us into this.
@note A location forwarding loop may occur where a client is bounced from the original target to the forwarded target and back if the application is not equipped to handle retries of previously called targets. TAO may be able to help in this case but it ultimately ends up being an application issue.
|
protectedvirtual |
This method is selectively made virtual, so that inherited classes can overload the user exception handling type. For example the DII needs a totally different method of user exception exception handling
|
protected |
Helper method used to handle location forwarded replies.
Invocation_Status TAO::Synch_Twoway_Invocation::remote_twoway | ( | ACE_Time_Value * | max_wait_time | ) |
Method used by the adapter to kickstart an invocation to the remote object. There is a exception declaration in this method which ensures that the exceptions propogated by the remote objects are converted a CORBA exceptions for the clients. This method does a bunch of things necessary to create and send the invocation. This method is also nerve centre for the interceptor invocation points.
|
protected |
As the name suggests waits for a reply from the remote ORB.
This method returns an exception when there is an error.