#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); }