00001 #ifndef COSTIMEREVENT_IDL 00002 #define COSTIMEREVENT_IDL 00003 00004 #include <CosTime.idl> 00005 #include <CosEventComm.idl> 00006 00007 #pragma prefix "omg.org" 00008 00014 module CosTimerEvent 00015 { 00016 enum TimeType 00017 { 00018 TTAbsolute, 00019 TTRelative, 00020 TTPeriodic 00021 }; 00022 00023 enum EventStatus 00024 { 00025 ESTimeSet, 00026 ESTimeCleared, 00027 ESTriggered, 00028 ESFailedTrigger 00029 }; 00030 00031 struct TimerEventT 00032 { 00033 TimeBase::UtcT utc; 00034 any event_data; 00035 }; 00036 00037 interface TimerEventHandler 00038 { 00039 readonly attribute EventStatus status; 00040 readonly attribute TimeType time_type; 00041 00042 boolean time_set (out CosTime::UTO uto); 00043 00044 void set_timer (in TimeType time_type, in CosTime::UTO trigger_time); 00045 00046 boolean cancel_timer (); 00047 00048 void set_data (in any event_data); 00049 }; 00050 00051 typedef sequence <TimerEventHandler> TimerEventHandlerSeq; 00052 00053 interface TimerEventService 00054 { 00055 TimerEventHandler register (in CosEventComm::PushConsumer event_interface, in any data); 00056 00057 void unregister (in TimerEventHandler timer_event_handler); 00058 00059 CosTime::UTO event_time (in TimerEventT timer_event); 00060 00061 TimerEventHandlerSeq list (); 00062 }; 00063 }; 00064 00065 #endif