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

📄 server2.cc

📁 MICO2.3.13 corba 环境平台
💻 CC
字号:
#define MICO_CONF_POA#include <CORBA-SMALL.h>#ifdef HAVE_ANSI_CPLUSPLUS_HEADERS#include <iostream>#else#include <iostream.h>#endif#include <coss/CosNaming.h>#include <coss/CosEventComm.h>#include <coss/CosEventChannelAdmin.h>using namespace std;class Consumer_impl : virtual public POA_CosEventComm::PushConsumer {public:  Consumer_impl () {}  void push (const CORBA::Any& data);  void disconnect_push_consumer ();};void Consumer_impl::push (const CORBA::Any& data) {  cout << "EventConsumer2: push () called !" << endl;}void Consumer_impl::disconnect_push_consumer () {  cout << "EventConsumer2: disconnected !" << endl;}int main (int argc, char** argv){  CORBA::ORB_var orb = CORBA::ORB_init (argc, argv, "mico-local-orb");  CORBA::Object_var poa_obj = orb->resolve_initial_references("RootPOA");  PortableServer::POA_var poa = PortableServer::POA::_narrow(poa_obj);  assert(!CORBA::is_nil(poa));  PortableServer::POAManager_var mgr = poa->the_POAManager();  Consumer_impl* consumer_impl = new Consumer_impl ();  CosEventComm::PushConsumer_var consumer = consumer_impl->_this();  CORBA::Object_var nsobj =    orb->resolve_initial_references ("NameService");  assert (! CORBA::is_nil (nsobj));    CosNaming::NamingContext_var nc =     CosNaming::NamingContext::_narrow (nsobj);  assert (! CORBA::is_nil (nc));  CosNaming::Name name;  name.length (1);  name[0].id = CORBA::string_dup ("MyEventChannel");  name[0].kind = CORBA::string_dup ("");  cerr << "(2) looking for EventChannel" << endl;  CORBA::Object_var obj;#ifdef HAVE_EXCEPTIONS  try {    obj = nc->resolve (name);  }  catch (...) {    cerr << "Cannot find EventChannel !" << endl;    return -1;  }#else  obj = nc->resolve (name);#endif    CosEventChannelAdmin::EventChannel_var event_channel;  CosEventChannelAdmin::ConsumerAdmin_var consumer_admin;  CosEventChannelAdmin::ProxyPushSupplier_var proxy_supplier;  cerr << "EventChannel found !" << endl;  event_channel = CosEventChannelAdmin::EventChannel::_narrow (obj);  assert (! CORBA::is_nil (event_channel));  consumer_admin = event_channel->for_consumers ();  assert (! CORBA::is_nil (consumer_admin));  proxy_supplier = consumer_admin->obtain_push_supplier ();  assert (! CORBA::is_nil (proxy_supplier));  cerr << "(2) ProxyPushSupplier obtained !" << endl;  proxy_supplier->connect_push_consumer (CosEventComm::PushConsumer::_duplicate (consumer));    mgr->activate();  orb->run ();  return 0;}

⌨️ 快捷键说明

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