server.cc

来自「MICO2.3.13 corba 环境平台」· CC 代码 · 共 70 行

CC
70
字号
#include "callback.h"#include <CORBA.h>#include <iostream>#include <fstream>#include <unistd.h>using namespace std;CORBA::ORB_ptr orb = CORBA::ORB::_nil();CORBA::String_var mess; // = CORBA::String::_nil();Callback_ptr callback = Callback::_nil();class Worker    : public MICOMT::Thread{public:    void _run(void*)    {	for (;;) {	    cout << "sending reply ``" << mess << "'' to the client." << endl;	    callback->reply(mess);#ifndef _WIN32	    sleep(1);#else // _WIN32	    _sleep(1);#endif // _WIN32	}    }};// Implementation for interface Senderclass Sender_impl    : virtual public POA_Sender{public:    void message(Callback_ptr obj, const char* msg)    {	cout << "client send message ``" << msg << "''" << endl;	callback = Callback::_duplicate(obj);	mess = msg;	Worker* worker = new Worker();	worker->start();    }};intmain(int argc, char* argv[]){    orb = CORBA::ORB_init(argc, argv, "mico-local-orb");    CORBA::Object_ptr obj = orb->resolve_initial_references("RootPOA");    PortableServer::POA_ptr poa = PortableServer::POA::_narrow(obj);    assert(!CORBA::is_nil(poa));    Sender_impl* servant = new Sender_impl;    PortableServer::ObjectId_var id = poa->activate_object(servant);    PortableServer::POAManager_ptr manager = poa->the_POAManager();    manager->activate();    cout << "server started." << endl;    orb->run();    CORBA::release(manager);    CORBA::release(poa);    CORBA::release(orb);}

⌨️ 快捷键说明

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