Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members  

CosTimerEvent.idl

Go to the documentation of this file.
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