// This function does what TAO does in order to get a transport. CORBA::Boolean first_request_flag (CORBA::Object_ptr obj) { TAO_Stub *const stub = obj->_stubobj (); if (0 == stub) { ACE_ERROR_RETURN ((LM_DEBUG, "CORBA::Object has stub = 0\n"), 1); } TAO::Profile_Transport_Resolver resolver (obj, stub, true); resolver.resolve (0); TAO_Transport *transport = resolver.transport (); if (0 == transport) { ACE_ERROR_RETURN ((LM_DEBUG, "Transport is 0\n"), 1); } return transport->first_request (); }
int TAO_Codeset_Service_Context_Handler::generate_service_context ( TAO_Stub *, TAO_Transport& transport, TAO_Operation_Details &opdetails, TAO_Target_Specification &, TAO_OutputCDR &) { if (transport.first_request ()) { TAO_Codeset_Manager * const csm = transport.orb_core ()->codeset_manager (); if (csm) { csm->generate_service_context (opdetails, transport); } } return 0; }