diff options
Diffstat (limited to 'TAO/orbsvcs/examples/RtEC/ECConfigurator/RtSchedEventChannel.idl')
-rw-r--r-- | TAO/orbsvcs/examples/RtEC/ECConfigurator/RtSchedEventChannel.idl | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/TAO/orbsvcs/examples/RtEC/ECConfigurator/RtSchedEventChannel.idl b/TAO/orbsvcs/examples/RtEC/ECConfigurator/RtSchedEventChannel.idl new file mode 100644 index 00000000000..84720d12920 --- /dev/null +++ b/TAO/orbsvcs/examples/RtEC/ECConfigurator/RtSchedEventChannel.idl @@ -0,0 +1,79 @@ +// $Id$ + +#ifndef RTSCHEDEVENTCHANNEL_IDL +#define RTSCHEDEVENTCHANNEL_IDL + +#include "orbsvcs/RtecScheduler.idl" +#include "orbsvcs/RtecEventComm.idl" +#include "orbsvcs/RtecEventChannelAdmin.idl" + +#pragma prefix "" + +module RtEventChannelAdmin +{ + typedef RtecScheduler::handle_t handle_t; + + typedef RtecScheduler::Criticality_t Criticality_t; + typedef RtecScheduler::Time Time; + typedef RtecScheduler::Period_t Period_t; + typedef RtecScheduler::Importance_t Importance_t; + typedef RtecScheduler::Quantum_t Quantum_t; + typedef RtecScheduler::Threads_t Threads_t; + typedef RtecScheduler::Info_Type_t Info_Type_t; + typedef long Phase_t; // 100 of nanoseconds + + struct SchedInfo { + Criticality_t criticality; + Time wc_time; + Time typical_time; + Time cached_time; + Period_t period; + Phase_t phase; + Importance_t importance; + Quantum_t quantum; + Threads_t threads; + Info_Type_t info_type; + }; + + interface RtSchedEventChannel + { + handle_t register_consumer(in string entry_point, + in SchedInfo info, + in RtecEventComm::_EventType type, + in RtecEventComm::PushConsumer consumer, + out RtecEventChannelAdmin::ProxyPushSupplier proxy_supplier) + raises (RtecScheduler::UNKNOWN_TASK, + RtecScheduler::INTERNAL, + RtecScheduler::SYNCHRONIZATION_FAILURE); + + handle_t register_supplier(in string entry_point, + in RtecEventComm::EventSourceID source, + in RtecEventComm::_EventType type, + in RtecEventComm::PushSupplier supplier, + out RtecEventChannelAdmin::ProxyPushConsumer proxy_consumer) + raises (RtecScheduler::UNKNOWN_TASK, + RtecScheduler::INTERNAL, + RtecScheduler::SYNCHRONIZATION_FAILURE); + + void add_dependency(in handle_t handle, + in handle_t dependency, + in long number_of_calls, + in RtecScheduler::Dependency_Type_t dependency_type) + raises (RtecScheduler::SYNCHRONIZATION_FAILURE, + RtecScheduler::UNKNOWN_TASK); + + void start() + raises (RtecScheduler::UNKNOWN_TASK, + RtecScheduler::INTERNAL, + RtecScheduler::SYNCHRONIZATION_FAILURE); + + void notify_gateway_connection(); + + void set_start_time(in Time start_time); + + RtecEventChannelAdmin::EventChannel event_channel(); + RtecScheduler::Scheduler scheduler(); + }; +}; + +#endif |