Go to the documentation of this file.00001 #ifndef _ENUMPROP_MACRO_INCLUDED_IDL_
00002 #define _ENUMPROP_MACRO_INCLUDED_IDL_
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049 #define CALLBACK(T) interface CB##T : ACS::Callback {\
00050 oneway void working(in T value, in ACSErr::Completion c, in ACS::CBDescOut desc); \
00051 oneway void done(in T value, in ACSErr::Completion c, in ACS::CBDescOut desc); \
00052 };\
00053 typedef CB##T T##CB;
00054
00055 #define ALARM(T) interface Alarm##T : ACS::Callback {\
00056 oneway void alarm_raised(in T value, in ACSErr::Completion c, in ACS::CBDescOut desc);\
00057 oneway void alarm_cleared(in T value, in ACSErr::Completion c, in ACS::CBDescOut desc);\
00058 };\
00059 \
00060 typedef Alarm##T T##Alarm;
00061
00062 #define PENUM(T) interface P##T: ACS::TypelessProperty {\
00063 T get_sync(out ACSErr::Completion c);\
00064 void get_async(in ACS::CBpattern cb, in ACS::CBDescIn desc);\
00065 long get_history(in long n_last_values, out T##Seq vs, out ACS::TimeSeq ts);\
00066 ACS::Monitorpattern create_monitor(in ACS::CBpattern cb, in ACS::CBDescIn desc);\
00067 ACS::Monitor create_postponed_monitor (in ACS::Time start_time, in ACS::CBpattern cb, in ACS::CBDescIn desc);\
00068 readonly attribute ACS::TimeInterval default_timer_trigger;\
00069 readonly attribute ACS::TimeInterval min_timer_trigger;\
00070 readonly attribute T default_value;\
00071 readonly attribute ACS::stringSeq statesDescription;\
00072 readonly attribute ACS::ConditionSeq condition;\
00073 readonly attribute T##Seq allStates;\
00074 }
00075
00076
00077
00078
00079
00080
00081
00082 #define ROENUM(T) interface RO##T: P##T{\
00083 ACS::Subscription new_subscription_AlarmEnum(in ACS::Alarmpattern cb, in ACS::CBDescIn desc);\
00084 readonly attribute T##Seq alarm_on;\
00085 readonly attribute T##Seq alarm_off;\
00086 }
00087
00088
00089
00090
00091
00092
00093
00094 #define RWENUM(T) interface RW##T: P##T {\
00095 ACSErr::Completion set_sync(in T value);\
00096 void set_async(in T value, in ACS::CBvoid cb, in ACS::CBDescIn desc);\
00097 void set_nonblocking(in T value);\
00098 }
00099
00100
00101
00102
00103
00104
00105 #define ACS_ENUM(T) \
00106 typedef sequence<T> T##Seq; \
00107 CALLBACK(T)\
00108 ALARM(T)\
00109 PENUM(T);\
00110 ROENUM(T);\
00111 RWENUM(T)
00112
00113 #endif
00114