#ifndef _COS_TYPED_EVENT_IDL_ #define _COS_TYPED_EVENT_IDL_ #pragma prefix "omg.org" #include module CosTypedEventComm { interface TypedPushConsumer : CosEventComm::PushConsumer { Object get_typed_consumer(); }; interface TypedPullSupplier : CosEventComm::PullSupplier { Object get_typed_supplier(); }; }; module CosTypedEventChannelAdmin { exception InterfaceNotSupported {}; exception NoSuchImplementation {}; typedef string Key; interface TypedProxyPushConsumer : CosEventChannelAdmin::ProxyPushConsumer, CosTypedEventComm::TypedPushConsumer { }; interface TypedProxyPullSupplier : CosEventChannelAdmin::ProxyPullSupplier, CosTypedEventComm::TypedPullSupplier { }; interface TypedSupplierAdmin : CosEventChannelAdmin::SupplierAdmin { TypedProxyPushConsumer obtain_typed_push_consumer(in Key supported_interface) raises(InterfaceNotSupported); CosEventChannelAdmin::ProxyPullConsumer obtain_typed_pull_consumer (in Key uses_interface) raises(NoSuchImplementation); }; interface TypedConsumerAdmin : CosEventChannelAdmin::ConsumerAdmin { TypedProxyPullSupplier obtain_typed_pull_supplier(in Key supported_interface) raises (InterfaceNotSupported); CosEventChannelAdmin::ProxyPushSupplier obtain_typed_push_supplier(in Key uses_interface) raises(NoSuchImplementation); }; interface TypedEventChannel { TypedConsumerAdmin for_consumers(); TypedSupplierAdmin for_suppliers(); void destroy (); }; }; #endif /* ifndef _COS_TYPED_EVENT_IDL_ */