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 00039 struct doubleBlobData 00040 { 00041 ACS::Time time; 00042 double value; 00043 }; 00044 00045 typedef sequence<doubleBlobData> doubleBlobDataSeq; 00046 00047 00048 struct doubleSeqBlobData 00049 { 00050 ACS::Time time; 00051 ACS::doubleSeq value; 00052 }; 00053 00054 typedef sequence<doubleSeqBlobData> doubleSeqBlobDataSeq; 00055 00056 /**************************************************************************/ 00057 00058 struct floatBlobData 00059 { 00060 ACS::Time time; 00061 float value; 00062 }; 00063 00064 typedef sequence<floatBlobData> floatBlobDataSeq; 00065 00066 struct floatSeqBlobData 00067 { 00068 ACS::Time time; 00069 ACS::floatSeq value; 00070 }; 00071 00072 typedef sequence<floatSeqBlobData> floatSeqBlobDataSeq; 00073 00074 /**************************************************************************/ 00075 00076 struct longBlobData 00077 { 00078 ACS::Time time; 00079 long value; 00080 }; 00081 00082 typedef sequence<longBlobData> longBlobDataSeq; 00083 00084 00085 struct longSeqBlobData 00086 { 00087 ACS::Time time; 00088 ACS::longSeq value; 00089 }; 00090 00091 typedef sequence<longSeqBlobData> longSeqBlobDataSeq; 00092 00093 00094 /**************************************************************************/ 00095 00096 struct longLongBlobData 00097 { 00098 ACS::Time time; 00099 long long value; 00100 }; 00101 00102 typedef sequence<longLongBlobData> longLongBlobDataSeq; 00103 00104 00105 struct longLongSeqBlobData 00106 { 00107 ACS::Time time; 00108 ACS::longLongSeq value; 00109 }; 00110 00111 typedef sequence<longLongSeqBlobData> longLongSeqBlobDataSeq; 00112 00113 /**************************************************************************/ 00114 00115 struct uLongLongBlobData 00116 { 00117 ACS::Time time; 00118 unsigned long long value; 00119 }; 00120 00121 typedef sequence<uLongLongBlobData> uLongLongBlobDataSeq; 00122 00123 00124 struct uLongLongSeqBlobData 00125 { 00126 ACS::Time time; 00127 ACS::uLongLongSeq value; 00128 }; 00129 00130 typedef sequence<uLongLongSeqBlobData> uLongLongSeqBlobDataSeq; 00131 00132 /**************************************************************************/ 00133 00134 struct patternBlobData 00135 { 00136 ACS::Time time; 00137 ACS::pattern value; 00138 }; 00139 00140 typedef sequence<patternBlobData> patternBlobDataSeq; 00141 00142 /**************************************************************************/ 00143 00144 struct stringBlobData 00145 { 00146 ACS::Time time; 00147 string value; 00148 }; 00149 00150 typedef sequence<stringBlobData> stringBlobDataSeq; 00151 00152 00153 struct stringSeqBlobData 00154 { 00155 ACS::Time time; 00156 ACS::stringSeq value; 00157 }; 00158 00159 typedef sequence<stringSeqBlobData> stringSeqBlobDataSeq; 00160 00161 /**************************************************************************/ 00162 00163 struct enumBlobData 00164 { 00165 ACS::Time time; 00166 unsigned long value; //enums are sent as unsigned long (short ?) 00167 }; 00168 00169 typedef sequence<enumBlobData> enumBlobDataSeq; 00170 00171 /**************************************************************************/ 00172 00173 struct anyBlobData 00174 { 00175 ACS::Time time; 00176 any value; 00177 }; 00178 00179 typedef sequence<anyBlobData> anyBlobDataSeq; 00180 00181 00182 typedef string serialNumberType; 00183 00184 typedef sequence<serialNumberType> serialNumberTypeSeq; 00185 00186 struct MonitorBlob 00187 { 00188 00189 boolean archiveOnChange; 00190 DataValueType typeOfValue; // can be found in any as well 00191 serialNumberTypeSeq propertySerialNumber; // sequence that we can handle also sequnces 00192 string propertyName; // full qualified property name (=component name included) 00193 any blobDataSeq; 00194 }; 00195 00196 struct MonitorDataBlock 00197 { 00198 ACS::Time startTime; 00199 ACS::Time stopTime; 00200 string componentName; 00201 serialNumberType deviceSerialNumber; 00202 sequence<MonitorBlob> monitorBlobs; 00203 }; 00204 00205 typedef sequence<MonitorDataBlock> MonitorDataBlocks; 00206 00207 00208 };//module TMCDB 00209 00210 #endif