00001 #ifndef COSTYPEDNOTIFYCHANNELADMIN_IDL
00002 #define COSTYPEDNOTIFYCHANNELADMIN_IDL
00003
00004 #include <CosEventChannelAdmin.idl>
00005 #include <CosTypedEventChannelAdmin.idl>
00006 #include <CosTypedNotifyComm.idl>
00007 #include <CosNotification.idl>
00008 #include <CosNotifyChannelAdmin.idl>
00009
00020 #pragma prefix "omg.org"
00021
00022 module CosTypedNotifyChannelAdmin
00023 {
00024
00025 interface TypedEventChannelFactory;
00026
00030 typedef string Key;
00031
00035 interface TypedProxyPushConsumer :
00036 CosNotifyChannelAdmin::ProxyConsumer,
00037 CosTypedNotifyComm::TypedPushConsumer
00038 {
00045 void connect_typed_push_supplier (
00046 in CosEventComm::PushSupplier push_supplier )
00047 raises ( CosEventChannelAdmin::AlreadyConnected );
00048
00049 };
00050
00054 interface TypedProxyPullSupplier :
00055 CosNotifyChannelAdmin::ProxySupplier,
00056 CosTypedNotifyComm::TypedPullSupplier
00057 {
00064 void connect_typed_pull_consumer (
00065 in CosEventComm::PullConsumer pull_consumer )
00066 raises ( CosEventChannelAdmin::AlreadyConnected );
00067
00068 };
00069
00073 interface TypedProxyPullConsumer :
00074 CosNotifyChannelAdmin::ProxyConsumer,
00075 CosNotifyComm::PullConsumer
00076 {
00085 void connect_typed_pull_supplier (
00086 in CosTypedEventComm::TypedPullSupplier pull_supplier)
00087 raises ( CosEventChannelAdmin::AlreadyConnected,
00088 CosEventChannelAdmin::TypeError );
00089
00095 void suspend_connection()
00096 raises (CosNotifyChannelAdmin::ConnectionAlreadyInactive,
00097 CosNotifyChannelAdmin::NotConnected);
00098
00104 void resume_connection()
00105 raises (CosNotifyChannelAdmin::ConnectionAlreadyActive,
00106 CosNotifyChannelAdmin::NotConnected);
00107
00108 };
00109
00113 interface TypedProxyPushSupplier :
00114 CosNotifyChannelAdmin::ProxySupplier,
00115 CosNotifyComm::PushSupplier
00116 {
00125 void connect_typed_push_consumer (
00126 in CosTypedEventComm::TypedPushConsumer push_consumer)
00127 raises ( CosEventChannelAdmin::AlreadyConnected,
00128 CosEventChannelAdmin::TypeError );
00129
00136 void suspend_connection()
00137 raises (CosNotifyChannelAdmin::ConnectionAlreadyInactive,
00138 CosNotifyChannelAdmin::NotConnected);
00139
00146 void resume_connection()
00147 raises (CosNotifyChannelAdmin::ConnectionAlreadyActive,
00148 CosNotifyChannelAdmin::NotConnected);
00149
00150 };
00151
00155 interface TypedConsumerAdmin :
00156 CosNotifyChannelAdmin::ConsumerAdmin,
00157 CosTypedEventChannelAdmin::TypedConsumerAdmin
00158 {
00171 TypedProxyPullSupplier obtain_typed_notification_pull_supplier(
00172 in Key supported_interface,
00173 out CosNotifyChannelAdmin::ProxyID proxy_id )
00174 raises( CosTypedEventChannelAdmin::InterfaceNotSupported,
00175 CosNotifyChannelAdmin::AdminLimitExceeded );
00176
00189 TypedProxyPushSupplier obtain_typed_notification_push_supplier(
00190 in Key uses_interface,
00191 out CosNotifyChannelAdmin::ProxyID proxy_id )
00192 raises( CosTypedEventChannelAdmin::NoSuchImplementation,
00193 CosNotifyChannelAdmin::AdminLimitExceeded );
00194
00195 };
00196
00200 interface TypedSupplierAdmin :
00201 CosNotifyChannelAdmin::SupplierAdmin,
00202 CosTypedEventChannelAdmin::TypedSupplierAdmin
00203 {
00216 TypedProxyPushConsumer obtain_typed_notification_push_consumer(
00217 in Key supported_interface,
00218 out CosNotifyChannelAdmin::ProxyID proxy_id )
00219 raises( CosTypedEventChannelAdmin::InterfaceNotSupported,
00220 CosNotifyChannelAdmin::AdminLimitExceeded );
00221
00234 TypedProxyPullConsumer obtain_typed_notification_pull_consumer(
00235 in Key uses_interface,
00236 out CosNotifyChannelAdmin::ProxyID proxy_id )
00237 raises( CosTypedEventChannelAdmin::NoSuchImplementation,
00238 CosNotifyChannelAdmin::AdminLimitExceeded );
00239
00240 };
00241
00245 interface TypedEventChannel :
00246 CosNotification::QoSAdmin,
00247 CosNotification::AdminPropertiesAdmin,
00248 CosTypedEventChannelAdmin::TypedEventChannel
00249 {
00253 readonly attribute TypedEventChannelFactory MyFactory;
00254
00259 readonly attribute TypedConsumerAdmin default_consumer_admin;
00260
00265 readonly attribute TypedSupplierAdmin default_supplier_admin;
00266
00270 readonly attribute CosNotifyFilter::FilterFactory default_filter_factory;
00271
00281 TypedConsumerAdmin new_for_typed_notification_consumers(
00282 in CosNotifyChannelAdmin::InterFilterGroupOperator op,
00283 out CosNotifyChannelAdmin::AdminID id );
00284
00294 TypedSupplierAdmin new_for_typed_notification_suppliers(
00295 in CosNotifyChannelAdmin::InterFilterGroupOperator op,
00296 out CosNotifyChannelAdmin::AdminID id );
00297
00306 TypedConsumerAdmin get_consumeradmin ( in CosNotifyChannelAdmin::AdminID id )
00307 raises ( CosNotifyChannelAdmin::AdminNotFound );
00308
00317 TypedSupplierAdmin get_supplieradmin ( in CosNotifyChannelAdmin::AdminID id )
00318 raises ( CosNotifyChannelAdmin::AdminNotFound );
00319
00324 CosNotifyChannelAdmin::AdminIDSeq get_all_consumeradmins();
00325
00330 CosNotifyChannelAdmin::AdminIDSeq get_all_supplieradmins();
00331
00332 };
00333
00337 interface TypedEventChannelFactory
00338 {
00352 TypedEventChannel create_typed_channel (
00353 in CosNotification::QoSProperties initial_QoS,
00354 in CosNotification::AdminProperties initial_admin,
00355 out CosNotifyChannelAdmin::ChannelID id)
00356 raises( CosNotification::UnsupportedQoS,
00357 CosNotification::UnsupportedAdmin );
00358
00363 CosNotifyChannelAdmin::ChannelIDSeq get_all_typed_channels();
00364
00372 TypedEventChannel get_typed_event_channel (
00373 in CosNotifyChannelAdmin::ChannelID id )
00374 raises ( CosNotifyChannelAdmin::ChannelNotFound );
00375
00376 };
00377
00378 };
00379
00380 #endif