1、初始化ORB、查找rootPOA并激活POA Manager、查找Name Service并通过Name Service与事件通道取得联系;(这一步与前面讲的Name Service的例子并无差异)
2、在找到对应的事件通道后,PullSupplier通过channel->for_suppliers()找到对应的SupplierAdmin,进而通过SupplierAdmin找到ProxyPullConsumer,这样我们就可以向该代理注册我们的PullSupplier了。
3、最后,我们可以通过调用disconnect_pull_consumer()方法断开与ProxyPullConsumer的连接。
本文附带的源码包还包括了PullConsumer、PushSupplier、PushConsumer等三个例子,基本流程与上面类似,大家可以自行进行比较,以充分掌握各模式对调用序列的影响。
实际上,除了上面将事件数据写入Any类型进行传输外,CORBA规范还定义了一套强类型API,以用于用户自定义类型的传输,%TAO_ROOT%/orbsvcs/examples/CosEC/TypedSimple是一个强类型EventChannel的例子。
四、运行
由于上述实例需要同时使用Naming_Service、Event_Service,因此,需要在启动程序前先启动这两个服务:
%TAO_ROOT%/orbsvcs/Naming_Service/Naming_Service -m 1
%TAO_ROOT%/orbsvcs/CosEvent_Service/CosEvent_Service
然后即可启动客户程序:
pushcons
文章来源于领测软件测试网 https://www.ltesting.net/










