TAO_DynamicInterface 3.1.4
|
This is the main class for DSI using AMH. More...
#include <AMH_DSI_Response_Handler.h>
Public Types | |
typedef TAO_AMH_DSI_Response_Handler_ptr | _ptr_type |
typedef TAO_AMH_DSI_Response_Handler_var | _var_type |
Public Member Functions | |
TAO_AMH_DSI_Response_Handler (TAO_ServerRequest &sr) | |
~TAO_AMH_DSI_Response_Handler () | |
virtual void | invoke_reply (CORBA::NVList_ptr args, CORBA::NamedValue_ptr result) |
virtual void | invoke_excep (TAO_AMH_DSI_Exception_Holder *h) |
virtual void | invoke_location_forward (CORBA::Object_ptr fwd, CORBA::Boolean is_perm) |
virtual void | gateway_exception_reply (CORBA::ULong reply_status, TAO_OutputCDR &encap) |
virtual void | gateway_exception_reply (CORBA::ULong reply_status, TAO_InputCDR &encap) |
void | _tao_byte_order (int byte_order) |
int | _tao_byte_order () |
CORBA::Object_ptr | _this () |
Returns a CORBA::Object_ptr for the target object. | |
Static Public Member Functions | |
static TAO_AMH_DSI_Response_Handler * | _duplicate (TAO_AMH_DSI_Response_Handler_ptr) |
CORBA Object related methods. | |
static TAO_AMH_DSI_Response_Handler * | _nil () |
static TAO_AMH_DSI_Response_Handler * | _narrow (CORBA::Object_ptr) |
static TAO_AMH_DSI_Response_Handler * | _unchecked_narrow (CORBA::Object_ptr) |
Protected Member Functions | |
virtual const char * | _interface_repository_id () const |
Return 0. Should never be used. | |
virtual void * | _downcast (const char *repository_id) |
Simply returns "this". | |
Private Attributes | |
TAO_ORB_Core * | orb_core_ |
This is the main class for DSI using AMH.
With ordinary DSI, the POA calls _dispatch, which in turn calls invoke on the DSI handler. Invoke completely handles the request, and packages the result in the request object so that it can be marshalled and sent back to the caller.
With the AMH variation, the DSI handler's invoke method starts the processing, but delegates the result packaging to a response handler. This way, if the invocation takes a long time, or involves blocking calls, then the result handling can be managed by another thread. This is particularly useful for gateway implementations, where the middle tier should not have to block waiting for replies.
As this is built on the CORBA object model, there are separate classes representing the interface and the implementation.
TAO_AMH_DSI_Response_Handler::TAO_AMH_DSI_Response_Handler | ( | TAO_ServerRequest & | sr | ) |
TAO_AMH_DSI_Response_Handler::~TAO_AMH_DSI_Response_Handler | ( | ) |
|
protectedvirtual |
Simply returns "this".
|
static |
CORBA Object related methods.
|
protectedvirtual |
Return 0. Should never be used.
|
static |
|
static |
int TAO_AMH_DSI_Response_Handler::_tao_byte_order | ( | ) |
Get the intended byte order for the message output stream. In case of gateway messages this could divert from the native byte order.
void TAO_AMH_DSI_Response_Handler::_tao_byte_order | ( | int | byte_order | ) |
byte_order | The intended byte order for the message output stream. For use in message gateways that forward messages from sources with different byte order than the native order. |
CORBA::Object_ptr TAO_AMH_DSI_Response_Handler::_this | ( | ) |
Returns a CORBA::Object_ptr for the target object.
|
static |
|
virtual |
|
virtual |
|
virtual |
|
virtual |
|
virtual |
|
private |