00001 #ifndef _TMCBD_COMMON_IDL__ 00002 #define _TMCBD_COMMON_IDL__ 00003 00004 #include <acscommon.idl> 00005 00006 #pragma prefix "alma" 00007 00008 00009 module TMCDB 00010 { 00011 00012 typedef unsigned short DataValueType; 00013 00014 const DataValueType doubleValueType=0; 00015 const DataValueType doubleSeqValueType=1; 00016 00017 const DataValueType floatValueType=2; 00018 const DataValueType floatSeqValueType=3; 00019 00020 const DataValueType longValueType=4; 00021 const DataValueType longSeqValueType=5; 00022 00023 const DataValueType longLongValueType=6; 00024 const DataValueType longLongSeqValueType=7; 00025 00026 00027 const DataValueType uLongLongValueType=8; 00028 const DataValueType uLongLongSeqValueType=9; 00029 00030 const DataValueType stringValueType=10; 00031 const DataValueType stringSeqValueType=11; 00032 00033 const DataValueType patternValueType=12; 00034 const DataValueType patternSeqValueType=13; // does not exist, just placeholder 00035 00036 const DataValueType enumValueType=14; 00037 00038 const DataValueType uLongValueType=15; 00039 const DataValueType uLongSeqValueType=16; 00040 00041 const DataValueType booleanValueType=17; 00042 const DataValueType booleanSeqValueType=18; 00043 00044 struct doubleBlobData 00045 { 00046 ACS::Time time; 00047 double value; 00048 }; 00049 00050 typedef sequence<doubleBlobData> doubleBlobDataSeq; 00051 00052 00053 struct doubleSeqBlobData 00054 { 00055 ACS::Time time; 00056 ACS::doubleSeq value; 00057 }; 00058 00059 typedef sequence<doubleSeqBlobData> doubleSeqBlobDataSeq; 00060 00061 /**************************************************************************/ 00062 00063 struct floatBlobData 00064 { 00065 ACS::Time time; 00066 float value; 00067 }; 00068 00069 typedef sequence<floatBlobData> floatBlobDataSeq; 00070 00071 struct floatSeqBlobData 00072 { 00073 ACS::Time time; 00074 ACS::floatSeq value; 00075 }; 00076 00077 typedef sequence<floatSeqBlobData> floatSeqBlobDataSeq; 00078 00079 /**************************************************************************/ 00080 00081 struct longBlobData 00082 { 00083 ACS::Time time; 00084 long value; 00085 }; 00086 00087 typedef sequence<longBlobData> longBlobDataSeq; 00088 00089 00090 struct longSeqBlobData 00091 { 00092 ACS::Time time; 00093 ACS::longSeq value; 00094 }; 00095 00096 typedef sequence<longSeqBlobData> longSeqBlobDataSeq; 00097 00098 00099 /**************************************************************************/ 00100 00101 struct uLongBlobData 00102 { 00103 ACS::Time time; 00104 unsigned long value; 00105 }; 00106 00107 typedef sequence<uLongBlobData> uLongBlobDataSeq; 00108 00109 00110 struct uLongSeqBlobData 00111 { 00112 ACS::Time time; 00113 ACS::uLongSeq value; 00114 }; 00115 00116 typedef sequence<uLongSeqBlobData> uLongSeqBlobDataSeq; 00117 00118 /**************************************************************************/ 00119 00120 struct longLongBlobData 00121 { 00122 ACS::Time time; 00123 long long value; 00124 }; 00125 00126 typedef sequence<longLongBlobData> longLongBlobDataSeq; 00127 00128 00129 struct longLongSeqBlobData 00130 { 00131 ACS::Time time; 00132 ACS::longLongSeq value; 00133 }; 00134 00135 typedef sequence<longLongSeqBlobData> longLongSeqBlobDataSeq; 00136 00137 /**************************************************************************/ 00138 00139 struct uLongLongBlobData 00140 { 00141 ACS::Time time; 00142 unsigned long long value; 00143 }; 00144 00145 typedef sequence<uLongLongBlobData> uLongLongBlobDataSeq; 00146 00147 00148 struct uLongLongSeqBlobData 00149 { 00150 ACS::Time time; 00151 ACS::uLongLongSeq value; 00152 }; 00153 00154 typedef sequence<uLongLongSeqBlobData> uLongLongSeqBlobDataSeq; 00155 00156 /**************************************************************************/ 00157 00158 struct booleanBlobData 00159 { 00160 ACS::Time time; 00161 boolean value; 00162 }; 00163 00164 typedef sequence<booleanBlobData> booleanBlobDataSeq; 00165 00166 00167 struct booleanSeqBlobData 00168 { 00169 ACS::Time time; 00170 ACS::booleanSeq value; 00171 }; 00172 00173 typedef sequence<booleanSeqBlobData> booleanSeqBlobDataSeq; 00174 00175 /**************************************************************************/ 00176 struct patternBlobData 00177 { 00178 ACS::Time time; 00179 ACS::pattern value; 00180 }; 00181 00182 typedef sequence<patternBlobData> patternBlobDataSeq; 00183 00184 /**************************************************************************/ 00185 00186 struct stringBlobData 00187 { 00188 ACS::Time time; 00189 string value; 00190 }; 00191 00192 typedef sequence<stringBlobData> stringBlobDataSeq; 00193 00194 00195 struct stringSeqBlobData 00196 { 00197 ACS::Time time; 00198 ACS::stringSeq value; 00199 }; 00200 00201 typedef sequence<stringSeqBlobData> stringSeqBlobDataSeq; 00202 00203 /**************************************************************************/ 00204 00205 struct enumBlobData 00206 { 00207 ACS::Time time; 00208 unsigned long value; //enums are sent as unsigned long (short ?) 00209 }; 00210 00211 typedef sequence<enumBlobData> enumBlobDataSeq; 00212 00213 /**************************************************************************/ 00214 00215 00216 typedef string serialNumberType; 00217 00218 typedef sequence<serialNumberType> serialNumberTypeSeq; 00219 00220 struct MonitorBlob 00221 { 00222 00223 boolean archiveOnChange; 00224 DataValueType typeOfValue; // can be found in any as well 00225 serialNumberTypeSeq propertySerialNumber; // sequence that we can handle also sequnces 00226 string propertyName; // full qualified property name (=component name included) 00227 any blobDataSeq; 00228 }; 00229 00230 typedef sequence<MonitorBlob> MonitorBlobSeq; 00231 00232 struct MonitorDataBlock 00233 { 00234 ACS::Time startTime; 00235 ACS::Time stopTime; 00236 string componentName; 00237 serialNumberType deviceSerialNumber; 00238 MonitorBlobSeq monitorBlobs; 00239 }; 00240 00241 typedef sequence<MonitorDataBlock> MonitorDataBlocks; 00242 00243 00244 };//module TMCDB 00245 00246 #endif