/** * This helper function looks up a server using an IOR file * and creates a proxy for that object. */ RTT::TaskContext* createTaskContextProxyIORFile(std::string iorfilename) { log(Debug) << "createTaskContextProxyIORFile" <<endlog(); std::ifstream iorfile( iorfilename.c_str() ); if (iorfile.is_open() && iorfile.good() ) { std::string ior; iorfile >> ior; return ::RTT::corba::TaskContextProxy::Create( ior, true); }
int ACE_TMAIN(int argc, ACE_TCHAR *argv[]) { try { CORBA::ORB_var orb = CORBA::ORB_init (argc, argv); if (parse_args (argc, argv) != 0) return 1; int done = 0; test_var holder; for(int i = 0; !done; i++) { ACE_TCHAR number[64]; ACE_TString iorfile(ior); ACE_OS::sprintf (number, ACE_TEXT(".%d"), i); iorfile += number; if (ACE_OS::access(iorfile.c_str (), R_OK) == 0) { iorfile = ACE_TEXT("file://") + iorfile; CORBA::Object_var tmp = orb->string_to_object(iorfile.c_str ()); test_var test = test::_narrow(tmp.in ()); if (CORBA::is_nil (test.in ())) { ACE_ERROR_RETURN ((LM_DEBUG, "Nil test reference <%s>\n", ior), 1); } test->send_stuff ("Some stuff to send"); // Test for LFU strategy. The transport to any other // server should be removed before the first one. if (i == 0) { test->send_stuff ("Some stuff to send"); holder = test; } else if (i == 5) // let a few go by before we reuse holder { // This will test the LRU strategy // This transport should be the 6th one // removed. if (!CORBA::is_nil(holder.in ())) { holder->send_stuff ("Some stuff to send"); } } } else { done = 1; } } orb->shutdown (1); orb->destroy (); } catch (const CORBA::Exception& ex) { ex._tao_print_exception ("Exception caught:"); return 1; } return 0; }