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

📄 messengerconsumer.cpp

📁 corba 通知服务的源代码
💻 CPP
字号:
#include <orbsvcs/CosNotifyChannelAdminC.h>#include <orbsvcs/CosNotifyCommC.h>#include <orbsvcs/CosNamingC.h>#include "StructuredEventConsumer_i.h"#include <iostream>int main(int argc, char *argv[]){  try    {      CORBA::ORB_var orb = CORBA::ORB_init(argc, argv);                 CORBA::Object_var naming_obj =	orb->resolve_initial_references ("NameService");           CosNaming::NamingContext_var naming_context =	CosNaming::NamingContext::_narrow(naming_obj.in());           CosNaming::Name name;      name.length (1);      name[0].id = CORBA::string_dup("MyEventChannel");      CORBA::Object_var ecObj = naming_context->resolve(name);                 CosNotifyChannelAdmin::EventChannel_var ec = 	CosNotifyChannelAdmin::EventChannel::_narrow(ecObj.in());           CosNotifyChannelAdmin::AdminID adminid;      CosNotifyChannelAdmin::InterFilterGroupOperator ifgop =	CosNotifyChannelAdmin::OR_OP;            CosNotifyChannelAdmin::ConsumerAdmin_var consumer_admin = 	ec->new_for_consumers(ifgop, 			      adminid);            CORBA::Object_var poa_object =	orb->resolve_initial_references("RootPOA");                        PortableServer::POA_var poa = 	PortableServer::POA::_narrow (poa_object.in());            StructuredEventConsumer_i  servant (orb.in());      PortableServer::ObjectId_var objectId = poa->activate_object (&servant);            CORBA::Object_var consumer_obj = poa->id_to_reference (objectId.in ());      CosNotifyComm::StructuredPushConsumer_var consumer =         CosNotifyComm::StructuredPushConsumer::_narrow (consumer_obj.in ());            CosNotifyChannelAdmin::ProxyID consumeradmin_proxy_id;             CosNotifyChannelAdmin::ProxySupplier_var proxy_supplier =	consumer_admin->obtain_notification_push_supplier(				  CosNotifyChannelAdmin::STRUCTURED_EVENT,				  consumeradmin_proxy_id);            CosNotifyChannelAdmin::StructuredProxyPushSupplier_var supplier_proxy;      supplier_proxy = CosNotifyChannelAdmin::StructuredProxyPushSupplier::	_narrow(proxy_supplier.in());            supplier_proxy->connect_structured_push_consumer(consumer.in());                 CosNotification::EventTypeSeq added (1);      CosNotification::EventTypeSeq removed (1);      added.length (1);      removed.length (1);      added[0].domain_name = CORBA::string_dup ("TAO1.2a");      added[0].type_name = CORBA::string_dup ("examples");      removed[0].domain_name = CORBA::string_dup ("*");      removed[0].type_name = CORBA::string_dup ("*");      supplier_proxy->subscription_change(added, removed);      PortableServer::POAManager_var poa_manager = poa->the_POAManager();             poa_manager->activate();              orb->run();    }  catch (CORBA::Exception &ex)    {		std::cerr << "Caught exception: " << ex << std::endl;      return 1;    }  return 0;}

⌨️ 快捷键说明

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