// // $Id$ // #include "RtecEventComm.idl" #include "RtecScheduler.idl" module RtecEventChannelAdmin { exception AlreadyConnected { }; exception TypeError { }; struct Dependency { RtecEventComm::Event event_; RtecScheduler::handle_t rt_info; }; typedef sequence DependencySet; struct ConsumerQOS { DependencySet dependencies; }; struct Publication { RtecEventComm::Event event_; RtecScheduler::Dependency_Info dependency_info_; }; typedef sequence PublicationSet; struct SupplierQOS { PublicationSet publications_; }; interface ProxyPushConsumer: RtecEventComm::PushConsumer { oneway void connect_push_supplier( in RtecEventComm::PushSupplier push_supplier, in SupplierQOS qos); // raises(AlreadyConnected); }; interface ProxyPushSupplier: RtecEventComm::PushSupplier { oneway void connect_push_consumer( in RtecEventComm::PushConsumer push_consumer, in ConsumerQOS qos); // raises(AlreadyConnected, TypeError); }; // TODO: Find out the exception specs for the following interface's // methods. interface ConsumerAdmin { ProxyPushSupplier obtain_push_supplier(); }; interface SupplierAdmin { ProxyPushConsumer obtain_push_consumer(); }; interface EventChannel { exception SYNCHRONIZATION_ERROR { long minor; long status; string name; }; exception QOS_ERROR { long minor; long status; string name; }; exception SUBSCRIPTION_ERROR { long minor; long status; string name; }; exception CORRELATION_ERROR { long minor; long status; string name; }; exception DISPATCH_ERROR { long minor; long status; string name; }; ConsumerAdmin for_consumers(); SupplierAdmin for_suppliers(); void destroy(); }; };