?? eg1.cc
字號:
// eg1.cc - This example is identical to that found in:// <top>/src/examples/echo/eg1.cc// except that implicit activation is used to activate// the echo object.//// Usage: eg1//#include <echo.hh>#ifdef HAVE_STD# include <iostream> using namespace std;#else# include <iostream.h>#endifclass Echo_i : public POA_Echo, public PortableServer::RefCountServantBase{public: inline Echo_i() {} virtual ~Echo_i() {} virtual char* echoString(const char* mesg);};char* Echo_i::echoString(const char* mesg){ return CORBA::string_dup(mesg);}//////////////////////////////////////////////////////////////////////static void hello(Echo_ptr e){ if( CORBA::is_nil(e) ) { cerr << "hello: The object reference is nil!\n" << endl; return; } CORBA::String_var src = (const char*) "Hello!"; CORBA::String_var dest = e->echoString(src); cerr << "I said, \"" << (char*)src << "\"." << endl << "The Echo object replied, \"" << (char*)dest <<"\"." << endl;}//////////////////////////////////////////////////////////////////////int main(int argc, char** argv){ try { CORBA::ORB_var orb = CORBA::ORB_init(argc, argv); { CORBA::Object_var obj = orb->resolve_initial_references("RootPOA"); PortableServer::POA_var poa = PortableServer::POA::_narrow(obj); // NB. You can activate the POA before or after // activating objects in that POA. PortableServer::POAManager_var pman = poa->the_POAManager(); pman->activate(); Echo_i* myecho = new Echo_i(); // This activates the object in the root POA (by default), and // returns a reference to it. Echo_var myechoref = myecho->_this(); myecho->_remove_ref(); hello(myechoref); } orb->destroy(); } catch(CORBA::COMM_FAILURE& ex) { cerr << "Caught system exception COMM_FAILURE -- unable to contact the " << "object." << endl; } catch(CORBA::SystemException&) { cerr << "Caught CORBA::SystemException." << endl; } catch(CORBA::Exception&) { cerr << "Caught CORBA::Exception." << endl; } catch(omniORB::fatalException& fe) { cerr << "Caught omniORB::fatalException:" << endl; cerr << " file: " << fe.file() << endl; cerr << " line: " << fe.line() << endl; cerr << " mesg: " << fe.errmsg() << endl; } catch(...) { cerr << "Caught unknown exception." << endl; } return 0;}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -