00001
00002
00003
00004 #ifndef _COS_EVENT_CHANNEL_ADMIN_IDL_
00005 #define _COS_EVENT_CHANNEL_ADMIN_IDL_
00006
00007
00008
00009 #include <CosEventComm.idl>
00010
00011 #pragma prefix "omg.org"
00012
00013 module CosEventChannelAdmin {
00014
00015 exception AlreadyConnected {};
00016 exception TypeError {};
00017
00018 interface ProxyPushConsumer: CosEventComm::PushConsumer {
00019 void connect_push_supplier(
00020 in CosEventComm::PushSupplier push_supplier)
00021 raises(AlreadyConnected);
00022 };
00023
00024 interface ProxyPullSupplier: CosEventComm::PullSupplier {
00025 void connect_pull_consumer(
00026 in CosEventComm::PullConsumer pull_consumer)
00027 raises(AlreadyConnected);
00028 };
00029
00030 interface ProxyPullConsumer: CosEventComm::PullConsumer {
00031 void connect_pull_supplier(
00032 in CosEventComm::PullSupplier pull_supplier)
00033 raises(AlreadyConnected,TypeError);
00034 };
00035
00036 interface ProxyPushSupplier: CosEventComm::PushSupplier {
00037 void connect_push_consumer(
00038 in CosEventComm::PushConsumer push_consumer)
00039 raises(AlreadyConnected, TypeError);
00040 };
00041
00042 interface ConsumerAdmin {
00043 ProxyPushSupplier obtain_push_supplier();
00044 ProxyPullSupplier obtain_pull_supplier();
00045 };
00046
00047 interface SupplierAdmin {
00048 ProxyPushConsumer obtain_push_consumer();
00049 ProxyPullConsumer obtain_pull_consumer();
00050 };
00051
00052 interface EventChannel {
00053 ConsumerAdmin for_consumers();
00054 SupplierAdmin for_suppliers();
00055 void destroy();
00056 };
00057 };
00058 #endif