⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 server.cc

📁 MICO2.3.13 corba 环境平台
💻 CC
字号:
/* * A simple "Hello World" example that uses the POA */#include "hello.h"#ifdef HAVE_ANSI_CPLUSPLUS_HEADERS#include <fstream>#else#include <fstream.h>#endifusing namespace std;/* * Hello World implementation inherits the POA skeleton class */class HelloWorld_impl : virtual public POA_HelloWorld{public:    char *hello (const char *name);    void error (const char *name);};char *HelloWorld_impl::hello (const char *name){    char *s = CORBA::string_alloc(7 + strlen(name));    strcpy(s, "Hello, ");    strcat(s, name);    cout << endl << s << endl << endl;    string str;    getline(cin, str);    return s;}voidHelloWorld_impl::error (const char *name){    cout << endl << "Raising exception: " << name << endl << endl;//    string str;//    getline(cin, str);    throw HelloWorld::Goodbye(name);}intmain (int argc, char *argv[]){  /*   * Initialize the ORB   */  CORBA::ORB_var orb = CORBA::ORB_init (argc, argv);  /*   * Obtain a reference to the RootPOA and its Manager   */  CORBA::Object_var poaobj = orb->resolve_initial_references ("RootPOA");  PortableServer::POA_var poa = PortableServer::POA::_narrow (poaobj);  PortableServer::POAManager_var mgr = poa->the_POAManager();  /*   * Create a USER_ID POA so that the actual reference is constant   */  CORBA::PolicyList plcs;  plcs.length(2);  plcs[0] = poa->create_id_assignment_policy (PortableServer::USER_ID);  plcs[1] = poa->create_lifespan_policy (PortableServer::PERSISTENT);  PortableServer::POA_var hello_poa =    poa->create_POA ("HelloWorld", PortableServer::POAManager::_nil(), plcs);  PortableServer::POAManager_var hello_mgr = hello_poa->the_POAManager();  /*   * Create an Object Id for our server   */  PortableServer::ObjectId_var oid =    PortableServer::string_to_ObjectId ("HelloWorld");  /*   * Create a Hello World object   */  HelloWorld_impl * hello = new HelloWorld_impl;  /*   * Activate the Servant   */  hello_poa->activate_object_with_id (oid, hello);  /*   * Write reference to file   */  ofstream of ("hello.ref");  CORBA::Object_var ref = hello_poa->id_to_reference (oid.in());  CORBA::String_var str = orb->object_to_string (ref.in());  of << str.in() << endl;  of.close ();  /*   * Activate the POA and start serving requests   */  printf ("Running.\n");  hello_mgr->activate ();  orb->run();  /*   * Shutdown (never reached)   */  hello_poa->destroy (TRUE, TRUE);  poa->destroy (TRUE, TRUE);  delete hello;  return 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -