diff options
Diffstat (limited to 'lib/cosTime/src/CosTimerEvent.idl')
-rw-r--r-- | lib/cosTime/src/CosTimerEvent.idl | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/lib/cosTime/src/CosTimerEvent.idl b/lib/cosTime/src/CosTimerEvent.idl new file mode 100644 index 0000000000..b845862f98 --- /dev/null +++ b/lib/cosTime/src/CosTimerEvent.idl @@ -0,0 +1,45 @@ +#ifndef _COS_TIMEREVENT_IDL_ +#define _COS_TIMEREVENT_IDL_ + +#pragma prefix "omg.org" + +#include"CosEventComm.idl" +#include<CosTime.idl> +#include<TimeBase.idl> + +module CosTimerEvent{ + + enum TimeType { + TTAbsolute, + TTRelative, + TTPeriodic + }; + enum EventStatus { + ESTimeSet, + ESTimeCleared, + ESTriggered, + ESFailedTrigger + }; + + struct TimerEventT { + TimeBase::UtcT utc; + any event_data; + }; + + interface TimerEventHandler { + readonly attribute EventStatus status; + boolean time_set( out CosTime::UTO uto ); + void set_timer( in TimeType time_type, in CosTime::UTO trigger_time ); + boolean cancel_timer(); + void set_data( in any event_data ); + }; + + interface TimerEventService { + + TimerEventHandler register( in CosEventComm::PushConsumer event_interface, in any data ); + void unregister( in TimerEventHandler timer_event_handler ); + CosTime::UTO event_time( in TimerEventT timer_event ); + }; +}; + +#endif |