BCB/VisiBroker下Corba Event Service使用方法
品雪 1999.11.8
pinxue@hotmail.com http://pinxue.yeah.net
Corba Event Service使用生产者/消费者模式工作,产生事件的对象为生产者,接收事件的为消费者,两者通过EventChannel联系。Event Service支持Push模式和Pull模式,前者生产者在必要时将事件数据发给通道,通道有一个循环随时侦听生产的动态,而Pull模式则相反,生产者提供一个侦听循环响应通道的数据请求。
将生产者边连接到事件通道上| 步骤 | Push生产者 | Pull生产者 |
| 绑定到EventChannel | EventChannel::_bind() | EventChannel::_bind() |
| 取得生产者管理器 | EventChannel::for_suppliers() | EventChannel::for_suppliers() |
| 取得一个消费者代理 | SupplierAdmin::obtain_push_consumer() | SupplierAdmin::obtain_pull_consumer() |
| 将生产者加到事件通道中 | ProxyPushConsumer::connect_push_supplier() | ProxyPullConsumer::connect_pull_supplier()` |
| 数据传输 | ProxyPushConsumer::push() | Implements pull() and try_pull() |
将消费者连接到事件通道上
| 步骤 | Push消费者 | Pull消费者 |
| 绑定到EventChannel | EventChannel::_bind() | EventChannel::_bind() |
| 取得消费者管理器 | EventChannel::for_consumers() | EventChannel::for_consumers() |
| 取得一个生产者代理 | SupplierAdmin::obtain_push_supplier() | SupplierAdmin::obtain_pull_supplier() |
| 将生产者加到事件通道中 | ProxyPushConsumer::connect_push_consumer() | ProxyPullConsumer::connect_pull_consumer()` |
| 数据传输 | Implements push() | ProxyPushSupplier::pull() and try_pull() |