00001 #ifndef COS_EVENTCHANNELADMIN_IDL
00002 #define COS_EVENTCHANNELADMIN_IDL
00003
00004 #include <CosEventComm.idl>
00005
00016 #pragma prefix "omg.org"
00017
00018 module CosEventChannelAdmin
00019 {
00024 exception AlreadyConnected {};
00025
00030 exception TypeError {};
00031
00035 interface ProxyPushConsumer: CosEventComm::PushConsumer
00036 {
00043 void connect_push_supplier(in CosEventComm::PushSupplier push_supplier)
00044 raises(AlreadyConnected);
00045 };
00046
00050 interface ProxyPullSupplier: CosEventComm::PullSupplier
00051 {
00058 void connect_pull_consumer(in CosEventComm::PullConsumer pull_consumer)
00059 raises(AlreadyConnected);
00060 };
00061
00065 interface ProxyPullConsumer: CosEventComm::PullConsumer
00066 {
00074 void connect_pull_supplier(in CosEventComm::PullSupplier pull_supplier)
00075 raises(AlreadyConnected,TypeError);
00076 };
00077
00081 interface ProxyPushSupplier: CosEventComm::PushSupplier
00082 {
00090 void connect_push_consumer(in CosEventComm::PushConsumer push_consumer)
00091 raises(AlreadyConnected, TypeError);
00092 };
00093
00097 interface ConsumerAdmin
00098 {
00103 ProxyPushSupplier obtain_push_supplier();
00104
00109 ProxyPullSupplier obtain_pull_supplier();
00110 };
00111
00115 interface SupplierAdmin
00116 {
00121 ProxyPushConsumer obtain_push_consumer();
00122
00127 ProxyPullConsumer obtain_pull_consumer();
00128 };
00129
00133 interface EventChannel
00134 {
00140 ConsumerAdmin for_consumers();
00141
00147 SupplierAdmin for_suppliers();
00148
00152 void destroy();
00153 };
00154 };
00155
00156 #endif