summaryrefslogtreecommitdiff
path: root/TAO/orbsvcs/examples/RtEC/ECConfigurator/RtSchedEventChannel.idl
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/orbsvcs/examples/RtEC/ECConfigurator/RtSchedEventChannel.idl')
-rw-r--r--TAO/orbsvcs/examples/RtEC/ECConfigurator/RtSchedEventChannel.idl79
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