diff options
author | Erlang/OTP <[email protected]> | 2009-11-20 14:54:40 +0000 |
---|---|---|
committer | Erlang/OTP <[email protected]> | 2009-11-20 14:54:40 +0000 |
commit | 84adefa331c4159d432d22840663c38f155cd4c1 (patch) | |
tree | bff9a9c66adda4df2106dfd0e5c053ab182a12bd /lib/cosNotification/src/CosTypedNotification.idl | |
download | otp-84adefa331c4159d432d22840663c38f155cd4c1.tar.gz otp-84adefa331c4159d432d22840663c38f155cd4c1.tar.bz2 otp-84adefa331c4159d432d22840663c38f155cd4c1.zip |
The R13B03 release.OTP_R13B03
Diffstat (limited to 'lib/cosNotification/src/CosTypedNotification.idl')
-rw-r--r-- | lib/cosNotification/src/CosTypedNotification.idl | 109 |
1 files changed, 109 insertions, 0 deletions
diff --git a/lib/cosNotification/src/CosTypedNotification.idl b/lib/cosNotification/src/CosTypedNotification.idl new file mode 100644 index 0000000000..882cde16e0 --- /dev/null +++ b/lib/cosNotification/src/CosTypedNotification.idl @@ -0,0 +1,109 @@ +#ifndef _COS_TYPED_NOTIFICATION_IDL_ +#define _COS_TYPED_NOTIFICATION_IDL_ + +#pragma prefix "omg.org" + +#include<CosNotifyChannelAdmin.idl> +#include<CosTypedEvent.idl> +#include<CosNotification.idl> + +module CosTypedNotifyComm { + interface TypedPushConsumer : CosTypedEventComm::TypedPushConsumer, CosNotifyComm::NotifyPublish { }; // TypedPushConsumer + + interface TypedPullSupplier : CosTypedEventComm::TypedPullSupplier, CosNotifyComm::NotifySubscribe { }; // TypedPullSupplier +}; // CosTypedNotifyComm + + +module CosTypedNotifyChannelAdmin { + // Forward declaration + interface TypedEventChannelFactory; + typedef string Key; + interface TypedProxyPushConsumer : CosNotifyChannelAdmin::ProxyConsumer, CosTypedNotifyComm::TypedPushConsumer { + void connect_typed_push_supplier (in CosEventComm::PushSupplier push_supplier) + raises (CosEventChannelAdmin::AlreadyConnected); + }; // TypedProxyPushConsumer + + interface TypedProxyPullSupplier : CosNotifyChannelAdmin::ProxySupplier, CosTypedNotifyComm::TypedPullSupplier { + void connect_typed_pull_consumer (in CosEventComm::PullConsumer pull_consumer) + raises (CosEventChannelAdmin::AlreadyConnected); + }; // TypedProxyPullSupplier + + interface TypedProxyPullConsumer : CosNotifyChannelAdmin::ProxyConsumer, CosNotifyComm::PullConsumer { + void connect_typed_pull_supplier (in CosTypedEventComm::TypedPullSupplier pull_supplier) + raises (CosEventChannelAdmin::AlreadyConnected, CosEventChannelAdmin::TypeError); + + void suspend_connection() + raises (CosNotifyChannelAdmin::ConnectionAlreadyInactive, CosNotifyChannelAdmin::NotConnected); + + void resume_connection() + raises (CosNotifyChannelAdmin::ConnectionAlreadyActive, CosNotifyChannelAdmin::NotConnected); + }; // TypedProxyPullConsumer + + interface TypedProxyPushSupplier : CosNotifyChannelAdmin::ProxySupplier, CosNotifyComm::PushSupplier { + void connect_typed_push_consumer (in CosTypedEventComm::TypedPushConsumer push_consumer) + raises (CosEventChannelAdmin::AlreadyConnected, CosEventChannelAdmin::TypeError); + + void suspend_connection() + raises (CosNotifyChannelAdmin::ConnectionAlreadyInactive, CosNotifyChannelAdmin::NotConnected); + + void resume_connection() + raises (CosNotifyChannelAdmin::ConnectionAlreadyActive, CosNotifyChannelAdmin::NotConnected); + }; // TypedProxyPushSupplier + + interface TypedConsumerAdmin : CosNotifyChannelAdmin::ConsumerAdmin, CosTypedEventChannelAdmin::TypedConsumerAdmin { + TypedProxyPullSupplier obtain_typed_notification_pull_supplier(in Key supported_interface, + out CosNotifyChannelAdmin::ProxyID proxy_id) + raises( CosTypedEventChannelAdmin::InterfaceNotSupported, CosNotifyChannelAdmin::AdminLimitExceeded ); + + TypedProxyPushSupplier obtain_typed_notification_push_supplier(in Key uses_interface, + out CosNotifyChannelAdmin::ProxyID proxy_id) + raises(CosTypedEventChannelAdmin::NoSuchImplementation, CosNotifyChannelAdmin::AdminLimitExceeded); + }; // TypedConsumerAdmin + + interface TypedSupplierAdmin : CosNotifyChannelAdmin::SupplierAdmin, CosTypedEventChannelAdmin::TypedSupplierAdmin { + TypedProxyPushConsumer obtain_typed_notification_push_consumer(in Key supported_interface, + out CosNotifyChannelAdmin::ProxyID proxy_id) + raises( CosTypedEventChannelAdmin::InterfaceNotSupported, CosNotifyChannelAdmin::AdminLimitExceeded); + TypedProxyPullConsumer obtain_typed_notification_pull_consumer(in Key uses_interface, + out CosNotifyChannelAdmin::ProxyID proxy_id ) + raises(CosTypedEventChannelAdmin::NoSuchImplementation, CosNotifyChannelAdmin::AdminLimitExceeded); + }; // TypedSupplierAdmin + + interface TypedEventChannel : CosNotification::QoSAdmin, CosNotification::AdminPropertiesAdmin, + CosTypedEventChannelAdmin::TypedEventChannel { + readonly attribute TypedEventChannelFactory MyFactory; + readonly attribute TypedConsumerAdmin default_consumer_admin; + readonly attribute TypedSupplierAdmin default_supplier_admin; + readonly attribute CosNotifyFilter::FilterFactory default_filter_factory; + + TypedConsumerAdmin new_for_typed_notification_consumers(in CosNotifyChannelAdmin::InterFilterGroupOperator op, + out CosNotifyChannelAdmin::AdminID id); + + TypedSupplierAdmin new_for_typed_notification_suppliers(in CosNotifyChannelAdmin::InterFilterGroupOperator op, + out CosNotifyChannelAdmin::AdminID id); + + TypedConsumerAdmin get_consumeradmin (in CosNotifyChannelAdmin::AdminID id ) + raises (CosNotifyChannelAdmin::AdminNotFound); + + TypedSupplierAdmin get_supplieradmin (in CosNotifyChannelAdmin::AdminID id) + raises (CosNotifyChannelAdmin::AdminNotFound); + + CosNotifyChannelAdmin::AdminIDSeq get_all_consumeradmins(); + + CosNotifyChannelAdmin::AdminIDSeq get_all_supplieradmins(); + }; // TypedEventChannel + + interface TypedEventChannelFactory { + TypedEventChannel create_typed_channel (in CosNotification::QoSProperties initial_QoS, + in CosNotification::AdminProperties initial_admin, + out CosNotifyChannelAdmin::ChannelID id) + raises( CosNotification::UnsupportedQoS, CosNotification::UnsupportedAdmin); + + CosNotifyChannelAdmin::ChannelIDSeq get_all_typed_channels(); + + TypedEventChannel get_typed_event_channel (in CosNotifyChannelAdmin::ChannelID id) + raises (CosNotifyChannelAdmin::ChannelNotFound); + }; // TypedEventChannelFactory +}; // CosTypedNotifyChannelAdmin + +#endif /* ifndef _COS_TYPED_NOTIFICATION_IDL_ */ |