TAO 2.0.4
|
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) |
Protected Member Functions | |
virtual Invocation_Status | handle_user_exception (TAO_InputCDR &cdr) |
Invocation_Status | location_forward (TAO_InputCDR &cdr) |
Helper method used to handle location forwarded replies. | |
Invocation_Status | handle_system_exception (TAO_InputCDR &cdr) |
Invocation_Status | wait_for_reply (ACE_Time_Value *max_wait_time, TAO_Synch_Reply_Dispatcher &rd, TAO_Bind_Dispatcher_Guard &bd) |
As the name suggests waits for a reply from the remote ORB. | |
Private Member Functions | |
Invocation_Status | check_reply_status (TAO_Synch_Reply_Dispatcher &rd) |
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. |
Invocation_Status TAO::Synch_Twoway_Invocation::check_reply_status | ( | TAO_Synch_Reply_Dispatcher & | rd | ) | [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.
Invocation_Status TAO::Synch_Twoway_Invocation::handle_system_exception | ( | TAO_InputCDR & | cdr | ) | [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.
Invocation_Status TAO::Synch_Twoway_Invocation::handle_user_exception | ( | TAO_InputCDR & | cdr | ) | [protected, virtual] |
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
Invocation_Status TAO::Synch_Twoway_Invocation::location_forward | ( | TAO_InputCDR & | cdr | ) | [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.
Invocation_Status TAO::Synch_Twoway_Invocation::wait_for_reply | ( | ACE_Time_Value * | max_wait_time, |
TAO_Synch_Reply_Dispatcher & | rd, | ||
TAO_Bind_Dispatcher_Guard & | bd | ||
) | [protected] |
As the name suggests waits for a reply from the remote ORB.
This method returns an exception when there is an error.