Public Member Functions

TAO_BiDIR_Service_Context_Handler Class Reference

#include <BiDir_Service_Context_Handler.h>

Inheritance diagram for TAO_BiDIR_Service_Context_Handler:
Inheritance graph
[legend]
Collaboration diagram for TAO_BiDIR_Service_Context_Handler:
Collaboration graph
[legend]

List of all members.

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)

Detailed Description

Definition at line 28 of file BiDir_Service_Context_Handler.h.


Member Function Documentation

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


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines