Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members  

CosTypedNotifyChannelAdmin.idl

Go to the documentation of this file.
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    // Forward declaration
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    }; // TypedProxyPushConsumer
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    }; // TypedProxyPullSupplier
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    }; // TypedProxyPullConsumer
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    }; // TypedProxyPushSupplier
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    }; // TypedConsumerAdmin
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    }; // TypedSupplierAdmin
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    }; // TypedEventChannel
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    }; // TypedEventChannelFactory
00377 
00378 }; // CosTypedNotifyChannelAdmin
00379 
00380 #endif /* COSTYPEDNOTIFYCHANNELADMIN_IDL */