- Main Page
- Namespaces
- Classes
- Files
- Related Pages

- Search for |

- Alphabetical List
- Class List
- Class Hierarchy
- Class Members

# TAO::Synch_Twoway_Invocation Class Reference

All the action for a synchronous twoway invocation happen here. More...

`#include <Synch_Invocation.h>`

Inheritance diagram for TAO::Synch_Twoway_Invocation:

[legend]
Collaboration diagram for TAO::Synch_Twoway_Invocation:

[legend]
List of all members.

## 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) throw (CORBA::Exception)
## Protected Member Functions
virtual Invocation_Status | handle_user_exception (TAO_InputCDR &cdr) throw (CORBA::Exception)
Invocation_Status | location_forward (TAO_InputCDR &cdr) throw (CORBA::SystemException)
| Helper method used to handle location forwarded replies.
Invocation_Status | handle_system_exception (TAO_InputCDR &cdr) throw (CORBA::SystemException)
Invocation_Status | wait_for_reply (ACE_Time_Value *max_wait_time, TAO_Synch_Reply_Dispatcher &rd, TAO_Bind_Dispatcher_Guard &bd) throw (CORBA::SystemException)
| 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)

## Detailed Description

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.

## Constructor & Destructor Documentation

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.

Parameters:

  | 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.

## Member Function Documentation

Invocation_Status TAO::Synch_Twoway_Invocation::check_reply_status | ( | TAO_Synch_Reply_Dispatcher & | rd | ) | `[private]`

This method returns an exception when there is an error.

Invocation_Status TAO::Synch_Twoway_Invocation::handle_system_exception | ( | TAO_InputCDR & | cdr | ) | throw (CORBA::SystemException)`[protected]`

Helper method used to handle system exceptions from the remote objects.

Invocation_Status TAO::Synch_Twoway_Invocation::handle_user_exception | ( | TAO_InputCDR & | cdr | ) | throw (CORBA::Exception)`[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 | ) | throw (CORBA::SystemException)`[protected]`

Helper method used to handle location forwarded replies.

Invocation_Status TAO::Synch_Twoway_Invocation::remote_twoway | ( | ACE_Time_Value * | max_wait_time | ) | throw (CORBA::Exception)

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 |
| ) |  |  | throw (CORBA::SystemException)`[protected]`

As the name suggests waits for a reply from the remote ORB.

This method returns an exception when there is an error.

The documentation for this class was generated from the following files:

- Synch_Invocation.h
- Synch_Invocation.cpp