#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