diff options
Diffstat (limited to 'lib/cosNotification/src/CosTypedEvent.idl')
-rw-r--r-- | lib/cosNotification/src/CosTypedEvent.idl | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/lib/cosNotification/src/CosTypedEvent.idl b/lib/cosNotification/src/CosTypedEvent.idl new file mode 100644 index 0000000000..d77c37731a --- /dev/null +++ b/lib/cosNotification/src/CosTypedEvent.idl @@ -0,0 +1,57 @@ +#ifndef _COS_TYPED_EVENT_IDL_ +#define _COS_TYPED_EVENT_IDL_ + +#pragma prefix "omg.org" + +#include<CosEvent.idl> + +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_ */ |