#include <BiDir_Service_Context_Handler.h>


Public Member Functions | |
| virtual int | process_service_context (TAO_Transport &transport, const IOP::ServiceContext &context) |
| virtual int | generate_service_context (TAO_Stub *stub, TAO_Transport &transport, TAO_Operation_Details &opdetails, TAO_Target_Specification &spec, TAO_OutputCDR &msg) |
Definition at line 28 of file BiDir_Service_Context_Handler.h.
| int TAO_BiDIR_Service_Context_Handler::generate_service_context | ( | TAO_Stub * | stub, | |
| TAO_Transport & | transport, | |||
| TAO_Operation_Details & | opdetails, | |||
| TAO_Target_Specification & | spec, | |||
| TAO_OutputCDR & | msg | |||
| ) | [virtual] |
Implements TAO_Service_Context_Handler.
Definition at line 31 of file BiDir_Service_Context_Handler.cpp.
{
if (transport.orb_core ()->bidir_giop_policy () &&
transport.messaging_object ()->is_ready_for_bidirectional (msg) &&
transport.bidirectional_flag () < 0)
{
transport.set_bidir_context_info (opdetails);
// Set the flag to 1 (i.e., originating side)
transport.bidirectional_flag (1);
// At the moment we enable BiDIR giop we have to get a new
// request id to make sure that we follow the even/odd rule
// for request id's. We only need to do this when enabled
// it, after that the Transport Mux Strategy will make sure
// that the rule is followed
opdetails.request_id (transport.tms ()->request_id ());
}
return 0;
}
| int TAO_BiDIR_Service_Context_Handler::process_service_context | ( | TAO_Transport & | transport, | |
| const IOP::ServiceContext & | context | |||
| ) | [virtual] |
Implements TAO_Service_Context_Handler.
Definition at line 20 of file BiDir_Service_Context_Handler.cpp.
{
TAO_InputCDR cdr (reinterpret_cast<const char*> (
context.context_data.get_buffer ()),
context.context_data.length ());
return transport.tear_listen_point_list (cdr);
}
1.7.0