void Client_ORBInitializer::post_init ( PortableInterceptor::ORBInitInfo_ptr info) { CORBA::String_var orb_id = info->orb_id (); CORBA::StringSeq_var args = info->arguments (); CORBA::String_var forward_str; // Extract the last forward reference from the argument list. CORBA::ULong args_len = args->length (); for (CORBA::ULong i = 0; i < args_len; ++i) if (ACE_OS::strcmp ("-k", args[i]) == 0 && i < (args_len - 1)) forward_str = args[i + 1]; PortableInterceptor::ClientRequestInterceptor_ptr interceptor = PortableInterceptor::ClientRequestInterceptor::_nil (); // Install the client request interceptor. ACE_NEW_THROW_EX (interceptor, Client_Request_Interceptor (orb_id.in (), forward_str.in ()), CORBA::NO_MEMORY ( CORBA::SystemException::_tao_minor_code ( TAO::VMCID, ENOMEM), CORBA::COMPLETED_NO)); PortableInterceptor::ClientRequestInterceptor_var client_interceptor = interceptor; info->add_client_request_interceptor (client_interceptor.in ()); }
CORBA::StringSeq *ossieSupport::strings_to_string_sequence(std::vector<std::string> &values) { CORBA::StringSeq_var result = new CORBA::StringSeq; result->length(values.size()); for (unsigned int i = 0; i < values.size(); ++i) { result[i] = CORBA::string_dup(values[i].c_str()); } return result._retn(); }
::CORBA::StringSeq * RecorderImpl::ProjectNames ( void ) throw ( ::CORBA::SystemException ) { CORBA::StringSeq_var names = new CORBA::StringSeq; std::vector<prodauto::ProjectName> project_names; prodauto::Database * db = 0; try { db = prodauto::Database::getInstance(); if (db) { project_names = db->loadProjectNames(); } } catch (const prodauto::DBException & dbe) { ACE_DEBUG((LM_ERROR, ACE_TEXT("Database Exception: %C\n"), dbe.getMessage().c_str())); } ACE_DEBUG((LM_DEBUG, ACE_TEXT("RecorderImpl::ProjectNames()\n"))); CORBA::ULong i = 0; for (std::vector<prodauto::ProjectName>::const_iterator it = project_names.begin(); it != project_names.end(); ++it) { ACE_DEBUG((LM_DEBUG, ACE_TEXT(" %C\n"), it->name.c_str())); names->length(i + 1); names->operator[](i) = CORBA::string_dup(it->name.c_str()); ++i; } return names._retn(); }