![]() |
pl-nk v0.4.5
Plonk|Plink|Plank are a set of cross-platform C/C++ frameworks for audio software development
|
00001 /* 00002 ------------------------------------------------------------------------------- 00003 This file is part of the Plink, Plonk, Plank libraries 00004 by Martin Robinson 00005 00006 http://code.google.com/p/pl-nk/ 00007 00008 Copyright University of the West of England, Bristol 2011-14 00009 All rights reserved. 00010 00011 Redistribution and use in source and binary forms, with or without 00012 modification, are permitted provided that the following conditions are met: 00013 00014 * Redistributions of source code must retain the above copyright 00015 notice, this list of conditions and the following disclaimer. 00016 * Redistributions in binary form must reproduce the above copyright 00017 notice, this list of conditions and the following disclaimer in the 00018 documentation and/or other materials provided with the distribution. 00019 * Neither the name of University of the West of England, Bristol nor 00020 the names of its contributors may be used to endorse or promote products 00021 derived from this software without specific prior written permission. 00022 00023 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 00024 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 00025 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 00026 DISCLAIMED. IN NO EVENT SHALL UNIVERSITY OF THE WEST OF ENGLAND, BRISTOL BE 00027 LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 00028 CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE 00029 GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 00030 HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 00031 LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT 00032 OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 00033 00034 This software makes use of third party libraries. For more information see: 00035 doc/license.txt included in the distribution. 00036 ------------------------------------------------------------------------------- 00037 */ 00038 00039 #ifndef PLONK_TYPEUTILITY_H 00040 #define PLONK_TYPEUTILITY_H 00041 00042 #include "plonk_CoreForwardDeclarations.h" 00043 #include "../containers/plonk_ContainerForwardDeclarations.h" 00044 #include "../containers/variables/plonk_VariableForwardDeclarations.h" 00045 #include "../graph/plonk_GraphForwardDeclarations.h" 00046 #include "../containers/plonk_Text.h" 00047 00048 class AudioFileReader; 00049 00056 class TypeCode 00057 { 00058 public: 00059 enum Codes 00060 { 00061 // 0 00062 Unknown, Dynamic, 00063 // built-in types (2) 00064 Float, Double, Int, Short, Int24, Long, LongLong, Char, Bool, 00065 // fixed point types 00066 FixI8F8, FixI8F24, FixI16F16, 00067 // atomic types (11) 00068 AtomicFloat, AtomicDouble, 00069 AtomicInt, AtomicLong, AtomicLongLong, AtomicPointer, AtomicExtendedPointer, AtomicDynamicPointer, 00070 // variables (19) 00071 FloatVariable, DoubleVariable, 00072 IntVariable, ShortVariable, Int24Variable, LongVariable, CharVariable, BoolVariable, 00073 // atomic variables (27) 00074 AtomicFloatVariable, AtomicDoubleVariable, AtomicIntVariable, AtomicLongVariable, 00075 AtomicPointerVariable, AtomicExtendedPointerVariable, AtomicDynamicPointerVariable, 00076 // arrays (34) 00077 FloatArray, DoubleArray, IntArray, ShortArray, Int24Array, LongArray, CharArray, BoolArray, DynamicArray, 00078 // other 00079 Text, TextArray, 00080 // channels (45) 00081 FloatChannel, DoubleChannel, IntChannel, ShortChannel, Int24Channel, LongChannel, 00082 // units (51) 00083 FloatUnit, DoubleUnit, IntUnit, ShortUnit, Int24Unit, LongUnit, 00084 // bus (57) 00085 FloatBus, DoubleBus, IntBus, ShortBus, Int24Bus, LongBus, 00086 // unit arrays (63) 00087 FloatUnits, DoubleUnits, IntUnits, ShortUnits, Int24Units, LongUnits, 00088 // bus arrays (69) 00089 FloatBusses, DoubleBusses, IntBusses, ShortBusses, Int24Busses, LongBusses, 00090 // breakpoints (75) 00091 FloatBreakpoints, DoubleBreakpoints, IntBreakpoints, ShortBreakpoints, Int24Breakpoints, LongBreakpoints, 00092 // wavetables (81) 00093 FloatWavetable, DoubleWavetable, IntWavetable, ShortWavetable, Int24Wavetable, LongWavetable, 00094 // signals (88) 00095 FloatSignal, DoubleSignal, IntSignal, ShortSignal, Int24Signal, LongSignal, 00096 // arrays 00097 FloatArrayVariable, DoubleArrayVariable, IntArrayVariable, ShortArrayVariable, 00098 Int24ArrayVariable, LongArrayVariable, CharArrayVariable, BoolArrayVariable, 00099 // other 00100 TextVariable, TextArrayVariable, 00101 // channels 00102 FloatChannelVariable, DoubleChannelVariable, IntChannelVariable, ShortChannelVariable, Int24ChannelVariable, LongChannelVariable, 00103 // units 00104 FloatUnitVariable, DoubleUnitVariable, IntUnitVariable, ShortUnitVariable, Int24UnitVariable, LongUnitVariable, 00105 // bus (57) 00106 FloatBusVariable, DoubleBusVariable, IntBusVariable, ShortBusVariable, Int24BusVariable, LongBusVariable, 00107 // unit arrays 00108 FloatUnitsVariable, DoubleUnitsVariable, IntUnitsVariable, ShortUnitsVariable, Int24UnitsVariable, LongUnitsVariable, 00109 // bus arrays 00110 FloatBussesVariable, DoubleBussesVariable, IntBussesVariable, ShortBussesVariable, Int24BussesVariable, LongBussesVariable, 00111 // breakpoints 00112 FloatBreakpointsVariable, DoubleBreakpointsVariable, IntBreakpointsVariable, ShortBreakpointsVariable, Int24BreakpointsVariable, LongBreakpointsVariable, 00113 // wavetables 00114 FloatWavetableVariable, DoubleWavetableVariable, IntWavetableVariable, ShortWavetableVariable, Int24WavetableVariable, LongWavetableVariable, 00115 // signals 00116 FloatSignalVariable, DoubleSignalVariable, IntSignalVariable, ShortSignalVariable, Int24SignalVariable, LongSignalVariable, 00117 00118 AudioFileReader, 00119 00120 FloatUnitQueue, DoubleUnitQueue, ShortUnitQueue, CharUnitQueue, IntUnitQueue, Int24UnitQueue, LongUnitQueue, 00121 00122 00123 // count (??) 00124 NumTypeCodes 00125 }; 00126 00128 static inline plonk::Text getName (const int code) throw() 00129 { 00130 static const char* names[] = { 00131 "Unknown", "Dynamic", 00132 00133 "Float", "Double", "Int", "Short", "Int24", "Long", "LongLong", "Char", "Bool", 00134 00135 "FixI8F8", "FixI8F24", "FixI16F16", 00136 00137 "AtomicFloat", "AtomicDouble", 00138 "AtomicInt", "AtomicLong", "AtomicLongLong", "AtomicPointer", "AtomicExtendedPointer", "AtomicDynamicPointer", 00139 00140 "FloatVariable", "DoubleVariable", 00141 "IntVariable", "ShortVariable", "Int24Variable", "LongVariable", "CharVariable", "BoolVariable", 00142 00143 "AtomicFloatVariable", "AtomicDoubleVariable", "AtomicIntVariable", "AtomicLongVariable", 00144 "AtomicPointerVariable", "AtomicExtendedPointerVariable", "AtomicDynamicPointerVariable", 00145 00146 "FloatArray", "DoubleArray", "IntArray", "ShortArray", "Int24Array", "LongArray", "CharArray", "BoolArray", "DynamicArray", 00147 "Text", "TextArray", 00148 00149 "FloatChannel", "DoubleChannel", "IntChannel", "ShortChannel", "Int24Channel", "LongChannel", 00150 00151 "FloatUnit", "DoubleUnit", "IntUnit", "ShortUnit", "Int24Unit", "LongUnit", 00152 00153 "FloatBus", "DoubleBus", "IntBus", "ShortBus", "Int24Bus", "LongBus", 00154 00155 "FloatUnits", "DoubleUnits", "IntUnits", "ShortUnits", "Int24Units", "LongUnits", 00156 00157 "FloatBusses", "DoubleBusses", "IntBusses", "ShortBusses", "Int24Busses", "LongBusses", 00158 00159 "FloatBreakpoints", "DoubleBreakpoints", "IntBreakpoints", "ShortBreakpoints", "Int24Breakpoints", "LongBreakpoints", 00160 00161 "FloatWavetable", "DoubleWavetable", "IntWavetable", "ShortWavetable", "Int24Wavetable", "LongWavetable", 00162 00163 "FloatSignal", "DoubleSignal", "IntSignal", "ShortSignal", "Int24Signal", "LongSignal", 00164 00165 "FloatArrayVariable", "DoubleArrayVariable", "IntArrayVariable", "ShortArrayVariable", 00166 "Int24ArrayVariable", "LongArrayVariable", "CharArrayVariable", "BoolArrayVariable", 00167 00168 "TextVariable", "TextArrayVariable", 00169 00170 "FloatChannelVariable", "DoubleChannelVariable", "IntChannelVariable", "ShortChannelVariable", "Int24ChannelVariable", "LongChannelVariable", 00171 00172 "FloatUnitVariable", "DoubleUnitVariable", "IntUnitVariable", "ShortUnitVariable", "Int24UnitVariable", "LongUnitVariable", 00173 00174 "FloatBusVariable", "DoubleBusVariable", "IntBusVariable", "ShortBusVariable", "Int24BusVariable", "LongBusVariable", 00175 00176 "FloatUnitsVariable", "DoubleUnitsVariable", "IntUnitsVariable", "ShortUnitsVariable", "Int24UnitsVariable", "LongUnitsVariable", 00177 00178 "FloatBussesVariable", "DoubleBussesVariable", "IntBussesVariable", "ShortBussesVariable", "Int24BussesVariable", "LongBussesVariable", 00179 00180 "FloatBreakpointsVariable", "DoubleBreakpointsVariable", "IntBreakpointsVariable", "ShortBreakpointsVariable", "Int24BreakpointsVariable", "LongBreakpointsVariable", 00181 00182 "FloatWavetableVariable", "DoubleWavetableVariable", "IntWavetableVariable", "ShortWavetableVariable", "Int24WavetableVariable", "LongWavetableVariable", 00183 00184 "FloatSignalVariable", "DoubleSignalVariable", "IntSignalVariable", "ShortSignalVariable", "Int24SignalVariable", "LongSignalVariable", 00185 00186 "AudioFileReader", 00187 00188 "FloatUnitQueue", "DoubleUnitQueue", "ShortUnitQueue", "CharUnitQueue", "IntUnitQueue", "Int24UnitQueue", "LongUnitQueue" 00189 }; 00190 00191 if ((code >= 0) && (code < TypeCode::NumTypeCodes)) 00192 return names[code]; 00193 else 00194 return names[0]; 00195 } 00196 00199 static inline plonk::LongLong getPeak (const int code) throw() 00200 { 00201 static const plonk::LongLong peaks[] = { 00202 0, 0, // invalid 00203 1, 1, INT_MAX, SHRT_MAX, PLONK_INT24_MAX, LONG_MAX, LONG_LONG_MAX, CHAR_MAX, 1, // built-ins 00204 1, 1, 1, // fixeds 00205 1, 1, INT_MAX, LONG_MAX, LONG_LONG_MAX, // atomics 00206 }; 00207 00208 if ((code >= 0) && (code < TypeCode::AtomicLongLong)) 00209 return peaks[code]; 00210 else 00211 return peaks[0]; 00212 } 00213 00216 static inline double getEpsilon (const int code) throw() 00217 { 00218 static const double epsilons[] = { 00219 0, 0, // invalid 00220 FLT_MIN, DBL_MIN, 1, 1, 1, 1, 1, 1, 1, // built-ins 00221 1.0 / (1 << 8), 1.0 / (1 << 24), 1.0 / (1 << 16), 00222 FLT_MIN, DBL_MIN, 1, 1, 1 // atomics 00223 }; 00224 00225 if ((code >= 0) && (code < TypeCode::AtomicLongLong)) 00226 return epsilons[code]; 00227 else 00228 return epsilons[0]; 00229 } 00230 00231 00232 static inline bool isUnknown (const int code) throw() { return (code == TypeCode::Unknown); } 00233 static inline bool isDynamic (const int code) throw() { return (code == TypeCode::Dynamic); } 00234 00235 static inline bool isBuiltIn (const int code) throw() { return (code >= TypeCode::Float) && (code <= TypeCode::Bool) && code != TypeCode::Int24; } 00236 static inline bool isFixed (const int code) throw() { return (code >= TypeCode::FixI8F8) && (code <= TypeCode::FixI16F16); } 00237 static inline bool isAtomic (const int code) throw() { return (code >= TypeCode::AtomicFloat) && (code <= TypeCode::AtomicDynamicPointer); } 00238 static inline bool isVariable (const int code) throw() { return (code >= TypeCode::FloatVariable) && (code <= TypeCode::BoolVariable); } 00239 static inline bool isAtomicVariable (const int code) throw() { return (code >= TypeCode::AtomicFloatVariable) && (code <= TypeCode::AtomicDynamicPointerVariable); } 00240 static inline bool isObjectVariable (const int code) throw() { return (code >= TypeCode::FloatArrayVariable) && (code <= TypeCode::LongSignalVariable); } 00241 static inline bool isArray (const int code) throw() { return (code >= TypeCode::FloatArray) && (code <= TypeCode::TextArray); } 00242 static inline bool isChannel (const int code) throw() { return (code >= TypeCode::FloatChannel) && (code <= TypeCode::LongChannel); } 00243 static inline bool isUnit (const int code) throw() { return (code >= TypeCode::FloatUnit) && (code <= TypeCode::LongUnit); } 00244 static inline bool isBus (const int code) throw() { return (code >= TypeCode::FloatBus) && (code <= TypeCode::LongBus); } 00245 static inline bool isUnits (const int code) throw() { return (code >= TypeCode::FloatUnits) && (code <= TypeCode::LongUnits); } 00246 static inline bool isBusses (const int code) throw() { return (code >= TypeCode::FloatBusses) && (code <= TypeCode::LongBusses); } 00247 static inline bool isBreakpoints (const int code) throw() { return (code >= TypeCode::FloatBreakpoints) && (code <= TypeCode::LongBreakpoints); } 00248 static inline bool isWavetable (const int code) throw() { return (code >= TypeCode::FloatWavetable) && (code <= TypeCode::LongWavetable); } 00249 static inline bool isSignal (const int code) throw() { return (code >= TypeCode::FloatSignal) && (code <= TypeCode::LongSignal); } 00250 static inline bool isAudioFileReader (const int code) throw() { return (code == TypeCode::AudioFileReader); } 00251 static inline bool isUnitQueue (const int code) throw() { return (code >= TypeCode::FloatUnitQueue) && (code <= TypeCode::LongUnitQueue); } 00252 00253 // could replace these later by designing the enum to be bit-mask based 00254 00255 static inline bool isFloatType (const int code) throw() 00256 { 00257 return (TypeCode::getName (code).indexOf ("Float") == 0) || (TypeCode::getName (code).indexOf ("AtomicFloat") == 0); 00258 } 00259 00260 static inline bool isDoubleType (const int code) throw() 00261 { 00262 return (TypeCode::getName (code).indexOf ("Double") == 0) || (TypeCode::getName (code).indexOf ("AtomicDouble") == 0); 00263 } 00264 00265 static inline bool isIntType (const int code) throw() 00266 { 00267 return ((TypeCode::getName (code).indexOf ("Int") == 0) && (TypeCode::getName (code).indexOf ("Int24") != 0)) 00268 || (TypeCode::getName (code).indexOf ("AtomicInt") == 0); 00269 } 00270 00271 static inline bool isShortType (const int code) throw() { return TypeCode::getName (code).indexOf ("Short") == 0; } 00272 static inline bool isInt24Type (const int code) throw() { return TypeCode::getName (code).indexOf ("Int24") == 0; } 00273 00274 static inline bool isLongType (const int code) throw() 00275 { 00276 return ((TypeCode::getName (code).indexOf ("Long") == 0) && (code != TypeCode::LongLong)) 00277 || (TypeCode::getName (code).indexOf ("AtomicLong") == 0); 00278 } 00279 00280 static inline bool isLongLongType (const int code) throw() { return TypeCode::getName (code).indexOf ("LongLong") == 0; } 00281 static inline bool isCharType (const int code) throw() { return TypeCode::getName (code).indexOf ("Char") == 0; } 00282 static inline bool isBoolType (const int code) throw() { return TypeCode::getName (code).indexOf ("Bool") == 0; } 00283 00284 static inline bool isFloatOrDoubleType (const int code) throw() { return TypeCode::isFloatType (code) || TypeCode::isDoubleType (code); } 00285 00286 static inline bool isIntegralType (const int code) throw() 00287 { 00288 return TypeCode::isIntType (code) || 00289 TypeCode::isShortType (code) || 00290 TypeCode::isInt24Type (code) || 00291 TypeCode::isLongType (code) || 00292 (code == TypeCode::LongLong) || 00293 TypeCode::isCharType (code) || 00294 TypeCode::isBoolType (code); 00295 } 00296 }; 00297 00298 00299 //------------------------------------------------------------------------------ 00300 00301 template<class Type> 00302 class TypeUtilityBase 00303 { 00304 public: 00305 typedef void* TypeName; 00306 typedef TypeName PeakType; 00307 typedef double ScaleType; 00308 typedef Type OriginalType; 00309 typedef Type const& PassType; 00310 typedef float IndexType; 00311 static inline int getTypeCode() { return TypeCode::Unknown; } 00312 static inline const OriginalType& getNull() { static OriginalType null; return null; } 00313 }; 00314 00315 template<class Type> 00316 class TypeUtilityBase<Type&> 00317 { 00318 public: 00319 typedef void* TypeName; 00320 typedef TypeName PeakType; 00321 typedef double ScaleType; 00322 typedef Type OriginalType; 00323 typedef Type const& PassType; 00324 typedef float IndexType; 00325 static inline int getTypeCode() { return TypeCode::Unknown; } 00326 static inline const OriginalType& getNull() { static OriginalType null; return null; } 00327 }; 00328 00329 template<class Type> 00330 class TypeUtilityBase<Type const&> 00331 { 00332 public: 00333 typedef void* TypeName; 00334 typedef TypeName PeakType; 00335 typedef double ScaleType; 00336 typedef Type OriginalType; 00337 typedef Type const& PassType; 00338 typedef float IndexType; 00339 static inline int getTypeCode() { return TypeCode::Unknown; } 00340 static inline const OriginalType& getNull() { static OriginalType null; return null; } 00341 }; 00342 00343 00344 //------------------------------------------------------------------------------ 00345 00346 00347 template<> 00348 class TypeUtilityBase<Dynamic> 00349 { 00350 public: 00351 typedef Dynamic TypeName; 00352 typedef Dynamic OriginalType; 00353 typedef Dynamic const& PassType; 00354 typedef float IndexType; 00355 static inline int getTypeCode() { return TypeCode::Dynamic; } 00356 static inline const OriginalType& getNull() { static OriginalType null; return null; } 00357 typedef int PeakType; 00358 typedef double ScaleType; 00359 }; 00360 00361 template<> 00362 class TypeUtilityBase<const Dynamic> 00363 { 00364 public: 00365 typedef const Dynamic TypeName; 00366 typedef Dynamic OriginalType; 00367 typedef Dynamic const& PassType; 00368 typedef float IndexType; 00369 static inline int getTypeCode() { return TypeCode::Dynamic; } 00370 static inline const OriginalType& getNull() { static OriginalType null; return null; } 00371 typedef int PeakType; 00372 typedef double ScaleType; 00373 }; 00374 00375 template<> 00376 class TypeUtilityBase<float> 00377 { 00378 public: 00379 typedef float TypeName; 00380 typedef float PeakType; 00381 typedef float ScaleType; 00382 typedef float OriginalType; 00383 typedef float PassType; 00384 typedef float IndexType; 00385 static inline int getTypeCode() { return TypeCode::Float; } 00386 static inline const OriginalType& getNull() { static OriginalType null (0); return null; } 00387 }; 00388 00389 template<> 00390 class TypeUtilityBase<double> 00391 { 00392 public: 00393 typedef double TypeName; 00394 typedef double PeakType; 00395 typedef double ScaleType; 00396 typedef double OriginalType; 00397 typedef double PassType; 00398 typedef double IndexType; 00399 static inline int getTypeCode() { return TypeCode::Double; } 00400 static inline const OriginalType& getNull() { static OriginalType null (0); return null; } 00401 }; 00402 00403 template<> 00404 class TypeUtilityBase<int> 00405 { 00406 public: 00407 typedef int TypeName; 00408 typedef int PeakType; 00409 typedef double ScaleType; 00410 typedef int OriginalType; 00411 typedef int PassType; 00412 typedef float IndexType; 00413 static inline int getTypeCode() { return TypeCode::Int; } 00414 static inline const OriginalType& getNull() { static OriginalType null (0); return null; } 00415 typedef unsigned int UnsignedType; 00416 typedef LongLong WideType; 00417 typedef UnsignedLongLong UnsignedWideType; 00418 00419 }; 00420 00421 template<> 00422 class TypeUtilityBase<short> 00423 { 00424 public: 00425 typedef short TypeName; 00426 typedef short PeakType; 00427 typedef float ScaleType; 00428 typedef short OriginalType; 00429 typedef short PassType; 00430 typedef float IndexType; 00431 static inline int getTypeCode() { return TypeCode::Short; } 00432 static inline const OriginalType& getNull() { static OriginalType null (0); return null; } 00433 typedef unsigned short UnsignedType; 00434 typedef int WideType; 00435 typedef unsigned int UnsignedWideType; 00436 }; 00437 00438 template<> 00439 class TypeUtilityBase<Int24> 00440 { 00441 public: 00442 typedef Int24 TypeName; 00443 typedef int PeakType; 00444 typedef float ScaleType; 00445 typedef Int24 OriginalType; 00446 typedef Int24 PassType; 00447 typedef float IndexType; 00448 static inline int getTypeCode() { return TypeCode::Int24; } 00449 static inline const OriginalType& getNull() { static OriginalType null (0); return null; } 00450 }; 00451 00452 /* 00453 template<> 00454 class TypeUtilityBase<Long> 00455 { 00456 public: 00457 typedef Long TypeName; 00458 typedef Long OriginalType; 00459 typedef Long PassType; 00460 typedef float IndexType; 00461 static inline int getTypeCode() { return TypeCode::Long; } 00462 static inline const OriginalType& getNull() { static OriginalType null (0); return null; } 00463 }; 00464 */ 00465 00466 template<> 00467 class TypeUtilityBase<LongLong> 00468 { 00469 public: 00470 typedef LongLong TypeName; 00471 typedef LongLong PeakType; 00472 typedef double ScaleType; 00473 typedef LongLong OriginalType; 00474 typedef LongLong PassType; 00475 typedef float IndexType; 00476 static inline int getTypeCode() { return TypeCode::LongLong; } 00477 static inline const OriginalType& getNull() { static OriginalType null (0); return null; } 00478 typedef UnsignedLongLong UnsignedType; 00479 typedef struct { LongLong a; LongLong b; } WideType; 00480 typedef struct { UnsignedLongLong a; UnsignedLongLong b; } UnsignedWideType; 00481 }; 00482 00483 template<> 00484 class TypeUtilityBase<char> 00485 { 00486 public: 00487 typedef char TypeName; 00488 typedef char PeakType; 00489 typedef float ScaleType; 00490 typedef char OriginalType; 00491 typedef char PassType; 00492 typedef float IndexType; 00493 static inline int getTypeCode() { return TypeCode::Char; } 00494 static inline const OriginalType& getNull() { static OriginalType null (0); return null; } 00495 typedef unsigned char UnsignedType; 00496 typedef short WideType; 00497 typedef unsigned short UnsignedWideType; 00498 }; 00499 00500 template<> 00501 class TypeUtilityBase<bool> 00502 { 00503 public: 00504 typedef bool TypeName; 00505 typedef bool PeakType; 00506 typedef float ScaleType; 00507 typedef bool OriginalType; 00508 typedef bool PassType; 00509 typedef float IndexType; 00510 static inline int getTypeCode() { return TypeCode::Bool; } 00511 static inline const OriginalType& getNull() { static OriginalType null (0); return null; } 00512 }; 00513 00514 template<> 00515 class TypeUtilityBase<FixI8F8> 00516 { 00517 public: 00518 typedef FixI8F8 TypeName; 00519 typedef FixI8F8 PeakType; 00520 typedef FixI8F8 ScaleType; 00521 typedef FixI8F8 OriginalType; 00522 typedef FixI8F8 PassType; 00523 typedef FixI8F8 IndexType; 00524 static inline int getTypeCode() { return TypeCode::FixI8F8; } 00525 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 00526 }; 00527 00528 template<> 00529 class TypeUtilityBase<FixI8F24> 00530 { 00531 public: 00532 typedef FixI8F24 TypeName; 00533 typedef FixI8F24 PeakType; 00534 typedef FixI8F24 ScaleType; 00535 typedef FixI8F24 OriginalType; 00536 typedef FixI8F24 PassType; 00537 typedef FixI8F24 IndexType; 00538 static inline int getTypeCode() { return TypeCode::FixI8F24; } 00539 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 00540 }; 00541 00542 template<> 00543 class TypeUtilityBase<FixI16F16> 00544 { 00545 public: 00546 typedef FixI16F16 TypeName; 00547 typedef FixI16F16 PeakType; 00548 typedef FixI16F16 ScaleType; 00549 typedef FixI16F16 OriginalType; 00550 typedef FixI16F16 PassType; 00551 typedef FixI16F16 IndexType; 00552 static inline int getTypeCode() { return TypeCode::FixI8F24; } 00553 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 00554 }; 00555 00556 template<> 00557 class TypeUtilityBase<AtomicFloat> 00558 { 00559 public: 00560 typedef AtomicFloat TypeName; 00561 typedef AtomicFloat OriginalType; 00562 typedef AtomicFloat const& PassType; 00563 typedef float IndexType; 00564 static inline int getTypeCode() { return TypeCode::AtomicFloat; } 00565 static inline const OriginalType& getNull() { static OriginalType null; return null; } 00566 typedef int PeakType; 00567 typedef double ScaleType; 00568 }; 00569 00570 template<> 00571 class TypeUtilityBase<const AtomicFloat> 00572 { 00573 public: 00574 typedef const AtomicFloat TypeName; 00575 typedef AtomicFloat OriginalType; 00576 typedef AtomicFloat const& PassType; 00577 typedef float IndexType; 00578 static inline int getTypeCode() { return TypeCode::AtomicFloat; } 00579 static inline const OriginalType& getNull() { static OriginalType null; return null; } 00580 typedef int PeakType; 00581 typedef double ScaleType; 00582 }; 00583 00584 template<> 00585 class TypeUtilityBase<AtomicDouble> 00586 { 00587 public: 00588 typedef AtomicDouble TypeName; 00589 typedef AtomicDouble OriginalType; 00590 typedef AtomicDouble const& PassType; 00591 typedef double IndexType; 00592 static inline int getTypeCode() { return TypeCode::AtomicDouble; } 00593 static inline const OriginalType& getNull() { static OriginalType null; return null; } 00594 typedef int PeakType; 00595 typedef double ScaleType; 00596 }; 00597 00598 template<> 00599 class TypeUtilityBase<const AtomicDouble> 00600 { 00601 public: 00602 typedef const AtomicDouble TypeName; 00603 typedef AtomicDouble OriginalType; 00604 typedef AtomicDouble const& PassType; 00605 typedef double IndexType; 00606 static inline int getTypeCode() { return TypeCode::AtomicDouble; } 00607 static inline const OriginalType& getNull() { static OriginalType null; return null; } 00608 typedef int PeakType; 00609 typedef double ScaleType; 00610 }; 00611 00612 template<> 00613 class TypeUtilityBase<AtomicInt> 00614 { 00615 public: 00616 typedef AtomicInt TypeName; 00617 typedef AtomicInt OriginalType; 00618 typedef AtomicInt const& PassType; 00619 typedef float IndexType; 00620 static inline int getTypeCode() { return TypeCode::AtomicInt; } 00621 static inline const OriginalType& getNull() { static OriginalType null; return null; } 00622 typedef int PeakType; 00623 typedef double ScaleType; 00624 }; 00625 00626 template<> 00627 class TypeUtilityBase<const AtomicInt> 00628 { 00629 public: 00630 typedef const AtomicInt TypeName; 00631 typedef AtomicInt OriginalType; 00632 typedef AtomicInt const& PassType; 00633 typedef float IndexType; 00634 static inline int getTypeCode() { return TypeCode::AtomicInt; } 00635 static inline const OriginalType& getNull() { static OriginalType null; return null; } 00636 typedef int PeakType; 00637 typedef double ScaleType; 00638 }; 00639 00640 /* 00641 template<> 00642 class TypeUtilityBase<AtomicLong> 00643 { 00644 public: 00645 typedef AtomicLong TypeName; 00646 typedef AtomicLong OriginalType; 00647 typedef AtomicLong const& PassType; 00648 typedef float IndexType; 00649 static inline int getTypeCode() { return TypeCode::AtomicLong; } 00650 static inline const OriginalType& getNull() { static OriginalType null; return null; } 00651 }; 00652 00653 template<> 00654 class TypeUtilityBase<const AtomicLong> 00655 { 00656 public: 00657 typedef const AtomicLong TypeName; 00658 typedef AtomicLong OriginalType; 00659 typedef AtomicLong const& PassType; 00660 typedef float IndexType; 00661 static inline int getTypeCode() { return TypeCode::AtomicLong; } 00662 static inline const OriginalType& getNull() { static OriginalType null; return null; } 00663 }; 00664 */ 00665 00666 template<> 00667 class TypeUtilityBase<AtomicLongLong> 00668 { 00669 public: 00670 typedef AtomicLongLong TypeName; 00671 typedef AtomicLongLong OriginalType; 00672 typedef AtomicLongLong const& PassType; 00673 typedef float IndexType; 00674 static inline int getTypeCode() { return TypeCode::AtomicLongLong; } 00675 static inline const OriginalType& getNull() { static OriginalType null; return null; } 00676 typedef int PeakType; 00677 typedef double ScaleType; 00678 }; 00679 00680 template<> 00681 class TypeUtilityBase<const AtomicLongLong> 00682 { 00683 public: 00684 typedef const AtomicLongLong TypeName; 00685 typedef AtomicLongLong OriginalType; 00686 typedef AtomicLongLong const& PassType; 00687 typedef float IndexType; 00688 static inline int getTypeCode() { return TypeCode::AtomicLongLong; } 00689 static inline const OriginalType& getNull() { static OriginalType null; return null; } 00690 typedef int PeakType; 00691 typedef double ScaleType; 00692 }; 00693 00694 template<> 00695 class TypeUtilityBase<AtomicPointer> 00696 { 00697 public: 00698 typedef AtomicPointer TypeName; 00699 typedef AtomicPointer OriginalType; 00700 typedef AtomicPointer const& PassType; 00701 typedef int IndexType; 00702 static inline int getTypeCode() { return TypeCode::AtomicPointer; } 00703 static inline const OriginalType& getNull() { static OriginalType null; return null; } 00704 typedef int PeakType; 00705 typedef double ScaleType; 00706 }; 00707 00708 template<> 00709 class TypeUtilityBase<const AtomicPointer> 00710 { 00711 public: 00712 typedef const AtomicPointer TypeName; 00713 typedef AtomicPointer OriginalType; 00714 typedef AtomicPointer const& PassType; 00715 typedef int IndexType; 00716 static inline int getTypeCode() { return TypeCode::AtomicPointer; } 00717 static inline const OriginalType& getNull() { static OriginalType null; return null; } 00718 typedef int PeakType; 00719 typedef double ScaleType; 00720 }; 00721 00722 template<> 00723 class TypeUtilityBase<AtomicExtendedPointer> 00724 { 00725 public: 00726 typedef AtomicExtendedPointer TypeName; 00727 typedef AtomicExtendedPointer OriginalType; 00728 typedef AtomicExtendedPointer const& PassType; 00729 typedef int IndexType; 00730 static inline int getTypeCode() { return TypeCode::AtomicExtendedPointer; } 00731 static inline const OriginalType& getNull() { static OriginalType null; return null; } 00732 typedef int PeakType; 00733 typedef double ScaleType; 00734 }; 00735 00736 template<> 00737 class TypeUtilityBase<const AtomicExtendedPointer> 00738 { 00739 public: 00740 typedef const AtomicExtendedPointer TypeName; 00741 typedef AtomicExtendedPointer OriginalType; 00742 typedef AtomicExtendedPointer const& PassType; 00743 typedef int IndexType; 00744 static inline int getTypeCode() { return TypeCode::AtomicExtendedPointer; } 00745 static inline const OriginalType& getNull() { static OriginalType null; return null; } 00746 typedef int PeakType; 00747 typedef double ScaleType; 00748 }; 00749 00750 template<> 00751 class TypeUtilityBase<AtomicDynamicPointer> 00752 { 00753 public: 00754 typedef AtomicDynamicPointer TypeName; 00755 typedef AtomicDynamicPointer OriginalType; 00756 typedef AtomicDynamicPointer const& PassType; 00757 typedef int IndexType; 00758 static inline int getTypeCode() { return TypeCode::AtomicDynamicPointer; } 00759 static inline const OriginalType& getNull() { static OriginalType null; return null; } 00760 typedef int PeakType; 00761 typedef double ScaleType; 00762 }; 00763 00764 template<> 00765 class TypeUtilityBase<const AtomicDynamicPointer> 00766 { 00767 public: 00768 typedef const AtomicDynamicPointer TypeName; 00769 typedef AtomicDynamicPointer OriginalType; 00770 typedef AtomicDynamicPointer const& PassType; 00771 typedef int IndexType; 00772 static inline int getTypeCode() { return TypeCode::AtomicDynamicPointer; } 00773 static inline const OriginalType& getNull() { static OriginalType null; return null; } 00774 typedef int PeakType; 00775 typedef double ScaleType; 00776 }; 00777 00778 template<> 00779 class TypeUtilityBase<FloatVariable> 00780 { 00781 public: 00782 typedef FloatVariable TypeName; 00783 typedef FloatVariable OriginalType; 00784 typedef FloatVariable const& PassType; 00785 typedef float IndexType; 00786 static inline int getTypeCode() { return TypeCode::FloatVariable; } 00787 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 00788 typedef int PeakType; 00789 typedef double ScaleType; 00790 }; 00791 00792 template<> 00793 class TypeUtilityBase<const FloatVariable> 00794 { 00795 public: 00796 typedef const FloatVariable TypeName; 00797 typedef FloatVariable OriginalType; 00798 typedef FloatVariable const& PassType; 00799 typedef float IndexType; 00800 static inline int getTypeCode() { return TypeCode::FloatVariable; } 00801 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 00802 typedef int PeakType; 00803 typedef double ScaleType; 00804 }; 00805 00806 template<> 00807 class TypeUtilityBase<DoubleVariable> 00808 { 00809 public: 00810 typedef DoubleVariable TypeName; 00811 typedef DoubleVariable OriginalType; 00812 typedef DoubleVariable const& PassType; 00813 typedef double IndexType; 00814 static inline int getTypeCode() { return TypeCode::DoubleVariable; } 00815 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 00816 typedef int PeakType; 00817 typedef double ScaleType; 00818 }; 00819 00820 template<> 00821 class TypeUtilityBase<const DoubleVariable> 00822 { 00823 public: 00824 typedef const DoubleVariable TypeName; 00825 typedef DoubleVariable OriginalType; 00826 typedef DoubleVariable const& PassType; 00827 typedef double IndexType; 00828 static inline int getTypeCode() { return TypeCode::DoubleVariable; } 00829 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 00830 typedef int PeakType; 00831 typedef double ScaleType; 00832 }; 00833 00834 template<> 00835 class TypeUtilityBase<IntVariable> 00836 { 00837 public: 00838 typedef IntVariable TypeName; 00839 typedef IntVariable OriginalType; 00840 typedef IntVariable const& PassType; 00841 typedef float IndexType; 00842 static inline int getTypeCode() { return TypeCode::IntVariable; } 00843 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 00844 typedef int PeakType; 00845 typedef double ScaleType; 00846 }; 00847 00848 template<> 00849 class TypeUtilityBase<const IntVariable> 00850 { 00851 public: 00852 typedef const IntVariable TypeName; 00853 typedef IntVariable OriginalType; 00854 typedef IntVariable const& PassType; 00855 typedef float IndexType; 00856 static inline int getTypeCode() { return TypeCode::IntVariable; } 00857 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 00858 typedef int PeakType; 00859 typedef double ScaleType; 00860 }; 00861 00862 template<> 00863 class TypeUtilityBase<ShortVariable> 00864 { 00865 public: 00866 typedef ShortVariable TypeName; 00867 typedef ShortVariable OriginalType; 00868 typedef ShortVariable const& PassType; 00869 typedef float IndexType; 00870 static inline int getTypeCode() { return TypeCode::ShortVariable; } 00871 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 00872 typedef int PeakType; 00873 typedef double ScaleType; 00874 }; 00875 00876 template<> 00877 class TypeUtilityBase<const ShortVariable> 00878 { 00879 public: 00880 typedef const ShortVariable TypeName; 00881 typedef ShortVariable OriginalType; 00882 typedef ShortVariable const& PassType; 00883 typedef float IndexType; 00884 static inline int getTypeCode() { return TypeCode::ShortVariable; } 00885 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 00886 typedef int PeakType; 00887 typedef double ScaleType; 00888 }; 00889 00890 template<> 00891 class TypeUtilityBase<Int24Variable> 00892 { 00893 public: 00894 typedef Int24Variable TypeName; 00895 typedef Int24Variable OriginalType; 00896 typedef Int24Variable const& PassType; 00897 typedef float IndexType; 00898 static inline int getTypeCode() { return TypeCode::Int24Variable; } 00899 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 00900 typedef int PeakType; 00901 typedef double ScaleType; 00902 }; 00903 00904 template<> 00905 class TypeUtilityBase<const Int24Variable> 00906 { 00907 public: 00908 typedef const Int24Variable TypeName; 00909 typedef Int24Variable OriginalType; 00910 typedef Int24Variable const& PassType; 00911 typedef float IndexType; 00912 static inline int getTypeCode() { return TypeCode::Int24Variable; } 00913 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 00914 typedef int PeakType; 00915 typedef double ScaleType; 00916 }; 00917 00918 template<> 00919 class TypeUtilityBase<LongVariable> 00920 { 00921 public: 00922 typedef LongVariable TypeName; 00923 typedef LongVariable OriginalType; 00924 typedef LongVariable const& PassType; 00925 typedef float IndexType; 00926 static inline int getTypeCode() { return TypeCode::LongVariable; } 00927 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 00928 typedef int PeakType; 00929 typedef double ScaleType; 00930 }; 00931 00932 template<> 00933 class TypeUtilityBase<const LongVariable> 00934 { 00935 public: 00936 typedef const LongVariable TypeName; 00937 typedef LongVariable OriginalType; 00938 typedef LongVariable const& PassType; 00939 typedef float IndexType; 00940 static inline int getTypeCode() { return TypeCode::LongVariable; } 00941 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 00942 typedef int PeakType; 00943 typedef double ScaleType; 00944 }; 00945 00946 template<> 00947 class TypeUtilityBase<CharVariable> 00948 { 00949 public: 00950 typedef CharVariable TypeName; 00951 typedef CharVariable OriginalType; 00952 typedef CharVariable const& PassType; 00953 typedef float IndexType; 00954 static inline int getTypeCode() { return TypeCode::CharVariable; } 00955 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 00956 typedef int PeakType; 00957 typedef double ScaleType; 00958 }; 00959 00960 template<> 00961 class TypeUtilityBase<const CharVariable> 00962 { 00963 public: 00964 typedef const CharVariable TypeName; 00965 typedef CharVariable OriginalType; 00966 typedef CharVariable const& PassType; 00967 typedef float IndexType; 00968 static inline int getTypeCode() { return TypeCode::CharVariable; } 00969 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 00970 typedef int PeakType; 00971 typedef double ScaleType; 00972 }; 00973 00974 template<> 00975 class TypeUtilityBase<BoolVariable> 00976 { 00977 public: 00978 typedef BoolVariable TypeName; 00979 typedef BoolVariable OriginalType; 00980 typedef BoolVariable const& PassType; 00981 typedef float IndexType; 00982 static inline int getTypeCode() { return TypeCode::BoolVariable; } 00983 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 00984 typedef int PeakType; 00985 typedef double ScaleType; 00986 }; 00987 00988 template<> 00989 class TypeUtilityBase<const BoolVariable> 00990 { 00991 public: 00992 typedef const BoolVariable TypeName; 00993 typedef BoolVariable OriginalType; 00994 typedef BoolVariable const& PassType; 00995 typedef float IndexType; 00996 static inline int getTypeCode() { return TypeCode::BoolVariable; } 00997 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 00998 typedef int PeakType; 00999 typedef double ScaleType; 01000 }; 01001 01002 template<> 01003 class TypeUtilityBase<AtomicFloatVariable> 01004 { 01005 public: 01006 typedef AtomicFloatVariable TypeName; 01007 typedef AtomicFloatVariable OriginalType; 01008 typedef AtomicFloatVariable const& PassType; 01009 typedef float IndexType; 01010 static inline int getTypeCode() { return TypeCode::AtomicFloatVariable; } 01011 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 01012 typedef int PeakType; 01013 typedef double ScaleType; 01014 }; 01015 01016 template<> 01017 class TypeUtilityBase<const AtomicFloatVariable> 01018 { 01019 public: 01020 typedef const AtomicFloatVariable TypeName; 01021 typedef AtomicFloatVariable OriginalType; 01022 typedef AtomicFloatVariable const& PassType; 01023 typedef float IndexType; 01024 static inline int getTypeCode() { return TypeCode::AtomicFloatVariable; } 01025 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 01026 typedef int PeakType; 01027 typedef double ScaleType; 01028 }; 01029 01030 template<> 01031 class TypeUtilityBase<AtomicDoubleVariable> 01032 { 01033 public: 01034 typedef AtomicDoubleVariable TypeName; 01035 typedef AtomicDoubleVariable OriginalType; 01036 typedef AtomicDoubleVariable const& PassType; 01037 typedef double IndexType; 01038 static inline int getTypeCode() { return TypeCode::AtomicDoubleVariable; } 01039 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 01040 typedef int PeakType; 01041 typedef double ScaleType; 01042 }; 01043 01044 template<> 01045 class TypeUtilityBase<const AtomicDoubleVariable> 01046 { 01047 public: 01048 typedef const AtomicDoubleVariable TypeName; 01049 typedef AtomicDoubleVariable OriginalType; 01050 typedef AtomicDoubleVariable const& PassType; 01051 typedef double IndexType; 01052 static inline int getTypeCode() { return TypeCode::AtomicDoubleVariable; } 01053 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 01054 typedef int PeakType; 01055 typedef double ScaleType; 01056 }; 01057 01058 template<> 01059 class TypeUtilityBase<AtomicIntVariable> 01060 { 01061 public: 01062 typedef AtomicIntVariable TypeName; 01063 typedef AtomicIntVariable OriginalType; 01064 typedef AtomicIntVariable const& PassType; 01065 typedef float IndexType; 01066 static inline int getTypeCode() { return TypeCode::AtomicIntVariable; } 01067 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 01068 typedef int PeakType; 01069 typedef double ScaleType; 01070 }; 01071 01072 template<> 01073 class TypeUtilityBase<const AtomicIntVariable> 01074 { 01075 public: 01076 typedef const AtomicIntVariable TypeName; 01077 typedef AtomicIntVariable OriginalType; 01078 typedef AtomicIntVariable const& PassType; 01079 typedef float IndexType; 01080 static inline int getTypeCode() { return TypeCode::AtomicIntVariable; } 01081 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 01082 typedef int PeakType; 01083 typedef double ScaleType; 01084 }; 01085 01086 template<> 01087 class TypeUtilityBase<AtomicLongVariable> 01088 { 01089 public: 01090 typedef AtomicLongVariable TypeName; 01091 typedef AtomicLongVariable OriginalType; 01092 typedef AtomicLongVariable const& PassType; 01093 typedef float IndexType; 01094 static inline int getTypeCode() { return TypeCode::AtomicLongVariable; } 01095 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 01096 typedef int PeakType; 01097 typedef double ScaleType; 01098 }; 01099 01100 template<> 01101 class TypeUtilityBase<const AtomicLongVariable> 01102 { 01103 public: 01104 typedef const AtomicLongVariable TypeName; 01105 typedef AtomicLongVariable OriginalType; 01106 typedef AtomicLongVariable const& PassType; 01107 typedef float IndexType; 01108 static inline int getTypeCode() { return TypeCode::AtomicLongVariable; } 01109 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 01110 typedef int PeakType; 01111 typedef double ScaleType; 01112 }; 01113 01114 template<> 01115 class TypeUtilityBase<AtomicPointerVariable> 01116 { 01117 public: 01118 typedef AtomicPointerVariable TypeName; 01119 typedef AtomicPointerVariable OriginalType; 01120 typedef AtomicPointerVariable const& PassType; 01121 typedef int IndexType; 01122 static inline int getTypeCode() { return TypeCode::AtomicPointerVariable; } 01123 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 01124 typedef int PeakType; 01125 typedef double ScaleType; 01126 }; 01127 01128 template<> 01129 class TypeUtilityBase<const AtomicPointerVariable> 01130 { 01131 public: 01132 typedef const AtomicPointerVariable TypeName; 01133 typedef AtomicPointerVariable OriginalType; 01134 typedef AtomicPointerVariable const& PassType; 01135 typedef int IndexType; 01136 static inline int getTypeCode() { return TypeCode::AtomicPointerVariable; } 01137 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 01138 typedef int PeakType; 01139 typedef double ScaleType; 01140 }; 01141 01142 template<> 01143 class TypeUtilityBase<AtomicExtendedPointerVariable> 01144 { 01145 public: 01146 typedef AtomicExtendedPointerVariable TypeName; 01147 typedef AtomicExtendedPointerVariable OriginalType; 01148 typedef AtomicExtendedPointerVariable const& PassType; 01149 typedef int IndexType; 01150 static inline int getTypeCode() { return TypeCode::AtomicExtendedPointerVariable; } 01151 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 01152 typedef int PeakType; 01153 typedef double ScaleType; 01154 }; 01155 01156 template<> 01157 class TypeUtilityBase<const AtomicExtendedPointerVariable> 01158 { 01159 public: 01160 typedef const AtomicExtendedPointerVariable TypeName; 01161 typedef AtomicExtendedPointerVariable OriginalType; 01162 typedef AtomicExtendedPointerVariable const& PassType; 01163 typedef int IndexType; 01164 static inline int getTypeCode() { return TypeCode::AtomicExtendedPointerVariable; } 01165 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 01166 typedef int PeakType; 01167 typedef double ScaleType; 01168 }; 01169 01170 template<> 01171 class TypeUtilityBase<AtomicDynamicPointerVariable> 01172 { 01173 public: 01174 typedef AtomicDynamicPointerVariable TypeName; 01175 typedef AtomicDynamicPointerVariable OriginalType; 01176 typedef AtomicDynamicPointerVariable const& PassType; 01177 typedef int IndexType; 01178 static inline int getTypeCode() { return TypeCode::AtomicDynamicPointerVariable; } 01179 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 01180 typedef int PeakType; 01181 typedef double ScaleType; 01182 }; 01183 01184 template<> 01185 class TypeUtilityBase<const AtomicDynamicPointerVariable> 01186 { 01187 public: 01188 typedef const AtomicDynamicPointerVariable TypeName; 01189 typedef AtomicDynamicPointerVariable OriginalType; 01190 typedef AtomicDynamicPointerVariable const& PassType; 01191 typedef int IndexType; 01192 static inline int getTypeCode() { return TypeCode::AtomicDynamicPointerVariable; } 01193 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 01194 typedef int PeakType; 01195 typedef double ScaleType; 01196 }; 01197 01198 //------------------------------------------------------------------------------ 01199 01200 template<> 01201 class TypeUtilityBase<FloatArray> 01202 { 01203 public: 01204 typedef FloatArray TypeName; 01205 typedef FloatArray OriginalType; 01206 typedef FloatArray const& PassType; 01207 typedef float IndexType; 01208 static inline int getTypeCode() { return TypeCode::FloatArray; } 01209 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 01210 typedef int PeakType; 01211 typedef double ScaleType; 01212 }; 01213 01214 template<> 01215 class TypeUtilityBase<const FloatArray> 01216 { 01217 public: 01218 typedef const FloatArray TypeName; 01219 typedef FloatArray OriginalType; 01220 typedef FloatArray const& PassType; 01221 typedef float IndexType; 01222 static inline int getTypeCode() { return TypeCode::FloatArray; } 01223 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 01224 typedef int PeakType; 01225 typedef double ScaleType; 01226 }; 01227 01228 template<> 01229 class TypeUtilityBase<DoubleArray> 01230 { 01231 public: 01232 typedef DoubleArray TypeName; 01233 typedef DoubleArray OriginalType; 01234 typedef DoubleArray const& PassType; 01235 typedef double IndexType; 01236 static inline int getTypeCode() { return TypeCode::DoubleArray; } 01237 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 01238 typedef int PeakType; 01239 typedef double ScaleType; 01240 }; 01241 01242 template<> 01243 class TypeUtilityBase<const DoubleArray> 01244 { 01245 public: 01246 typedef const DoubleArray TypeName; 01247 typedef DoubleArray OriginalType; 01248 typedef DoubleArray const& PassType; 01249 typedef double IndexType; 01250 static inline int getTypeCode() { return TypeCode::DoubleArray; } 01251 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 01252 typedef int PeakType; 01253 typedef double ScaleType; 01254 }; 01255 01256 template<> 01257 class TypeUtilityBase<IntArray> 01258 { 01259 public: 01260 typedef IntArray TypeName; 01261 typedef IntArray OriginalType; 01262 typedef IntArray const& PassType; 01263 typedef float IndexType; 01264 static inline int getTypeCode() { return TypeCode::IntArray; } 01265 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 01266 typedef int PeakType; 01267 typedef double ScaleType; 01268 }; 01269 01270 template<> 01271 class TypeUtilityBase<const IntArray> 01272 { 01273 public: 01274 typedef const IntArray TypeName; 01275 typedef IntArray OriginalType; 01276 typedef IntArray const& PassType; 01277 typedef float IndexType; 01278 static inline int getTypeCode() { return TypeCode::IntArray; } 01279 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 01280 typedef int PeakType; 01281 typedef double ScaleType; 01282 }; 01283 01284 template<> 01285 class TypeUtilityBase<ShortArray> 01286 { 01287 public: 01288 typedef ShortArray TypeName; 01289 typedef ShortArray OriginalType; 01290 typedef ShortArray const& PassType; 01291 typedef float IndexType; 01292 static inline int getTypeCode() { return TypeCode::ShortArray; } 01293 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 01294 typedef int PeakType; 01295 typedef double ScaleType; 01296 }; 01297 01298 template<> 01299 class TypeUtilityBase<const ShortArray> 01300 { 01301 public: 01302 typedef const ShortArray TypeName; 01303 typedef ShortArray OriginalType; 01304 typedef ShortArray const& PassType; 01305 typedef float IndexType; 01306 static inline int getTypeCode() { return TypeCode::ShortArray; } 01307 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 01308 typedef int PeakType; 01309 typedef double ScaleType; 01310 }; 01311 01312 template<> 01313 class TypeUtilityBase<Int24Array> 01314 { 01315 public: 01316 typedef Int24Array TypeName; 01317 typedef Int24Array OriginalType; 01318 typedef Int24Array const& PassType; 01319 typedef float IndexType; 01320 static inline int getTypeCode() { return TypeCode::Int24Array; } 01321 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 01322 typedef int PeakType; 01323 typedef double ScaleType; 01324 }; 01325 01326 template<> 01327 class TypeUtilityBase<const Int24Array> 01328 { 01329 public: 01330 typedef const Int24Array TypeName; 01331 typedef Int24Array OriginalType; 01332 typedef Int24Array const& PassType; 01333 typedef float IndexType; 01334 static inline int getTypeCode() { return TypeCode::Int24Array; } 01335 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 01336 typedef int PeakType; 01337 typedef double ScaleType; 01338 }; 01339 01340 template<> 01341 class TypeUtilityBase<LongArray> 01342 { 01343 public: 01344 typedef LongArray TypeName; 01345 typedef LongArray OriginalType; 01346 typedef LongArray const& PassType; 01347 typedef float IndexType; 01348 static inline int getTypeCode() { return TypeCode::LongArray; } 01349 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 01350 typedef int PeakType; 01351 typedef double ScaleType; 01352 }; 01353 01354 template<> 01355 class TypeUtilityBase<const LongArray> 01356 { 01357 public: 01358 typedef const LongArray TypeName; 01359 typedef LongArray OriginalType; 01360 typedef LongArray const& PassType; 01361 typedef float IndexType; 01362 static inline int getTypeCode() { return TypeCode::LongArray; } 01363 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 01364 typedef int PeakType; 01365 typedef double ScaleType; 01366 }; 01367 01368 template<> 01369 class TypeUtilityBase<CharArray> 01370 { 01371 public: 01372 typedef CharArray TypeName; 01373 typedef CharArray OriginalType; 01374 typedef CharArray const& PassType; 01375 typedef float IndexType; 01376 static inline int getTypeCode() { return TypeCode::CharArray; } 01377 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 01378 typedef int PeakType; 01379 typedef double ScaleType; 01380 }; 01381 01382 template<> 01383 class TypeUtilityBase<const CharArray> 01384 { 01385 public: 01386 typedef const CharArray TypeName; 01387 typedef CharArray OriginalType; 01388 typedef CharArray const& PassType; 01389 typedef float IndexType; 01390 static inline int getTypeCode() { return TypeCode::CharArray; } 01391 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 01392 typedef int PeakType; 01393 typedef double ScaleType; 01394 }; 01395 01396 template<> 01397 class TypeUtilityBase<BoolArray> 01398 { 01399 public: 01400 typedef BoolArray TypeName; 01401 typedef BoolArray OriginalType; 01402 typedef BoolArray const& PassType; 01403 typedef float IndexType; 01404 static inline int getTypeCode() { return TypeCode::BoolArray; } 01405 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 01406 typedef int PeakType; 01407 typedef double ScaleType; 01408 }; 01409 01410 template<> 01411 class TypeUtilityBase<const BoolArray> 01412 { 01413 public: 01414 typedef const BoolArray TypeName; 01415 typedef BoolArray OriginalType; 01416 typedef BoolArray const& PassType; 01417 typedef float IndexType; 01418 static inline int getTypeCode() { return TypeCode::BoolArray; } 01419 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 01420 typedef int PeakType; 01421 typedef double ScaleType; 01422 }; 01423 01424 template<> 01425 class TypeUtilityBase<DynamicArray> 01426 { 01427 public: 01428 typedef DynamicArray TypeName; 01429 typedef DynamicArray OriginalType; 01430 typedef DynamicArray const& PassType; 01431 typedef float IndexType; 01432 static inline int getTypeCode() { return TypeCode::DynamicArray; } 01433 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 01434 typedef int PeakType; 01435 typedef double ScaleType; 01436 }; 01437 01438 template<> 01439 class TypeUtilityBase<const DynamicArray> 01440 { 01441 public: 01442 typedef const DynamicArray TypeName; 01443 typedef DynamicArray OriginalType; 01444 typedef DynamicArray const& PassType; 01445 typedef float IndexType; 01446 static inline int getTypeCode() { return TypeCode::DynamicArray; } 01447 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 01448 typedef int PeakType; 01449 typedef double ScaleType; 01450 }; 01451 01452 template<> 01453 class TypeUtilityBase<plonk::Text> 01454 { 01455 public: 01456 typedef plonk::Text TypeName; 01457 typedef plonk::Text OriginalType; 01458 typedef plonk::Text const& PassType; 01459 typedef int IndexType; 01460 static inline int getTypeCode() { return TypeCode::Text; } 01461 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 01462 typedef int PeakType; 01463 typedef double ScaleType; 01464 }; 01465 01466 template<> 01467 class TypeUtilityBase<const plonk::Text> 01468 { 01469 public: 01470 typedef const plonk::Text TypeName; 01471 typedef plonk::Text OriginalType; 01472 typedef plonk::Text const& PassType; 01473 typedef int IndexType; 01474 static inline int getTypeCode() { return TypeCode::Text; } 01475 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 01476 typedef int PeakType; 01477 typedef double ScaleType; 01478 }; 01479 01480 template<> 01481 class TypeUtilityBase<TextArray> 01482 { 01483 public: 01484 typedef TextArray TypeName; 01485 typedef TextArray OriginalType; 01486 typedef TextArray const& PassType; 01487 typedef int IndexType; 01488 static inline int getTypeCode() { return TypeCode::TextArray; } 01489 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 01490 typedef int PeakType; 01491 typedef double ScaleType; 01492 }; 01493 01494 template<> 01495 class TypeUtilityBase<const TextArray> 01496 { 01497 public: 01498 typedef const TextArray TypeName; 01499 typedef TextArray OriginalType; 01500 typedef TextArray const& PassType; 01501 typedef int IndexType; 01502 static inline int getTypeCode() { return TypeCode::TextArray; } 01503 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 01504 typedef int PeakType; 01505 typedef double ScaleType; 01506 }; 01507 01508 template<> 01509 class TypeUtilityBase<FloatChannel> 01510 { 01511 public: 01512 typedef FloatChannel TypeName; 01513 typedef FloatChannel OriginalType; 01514 typedef FloatChannel const& PassType; 01515 typedef float IndexType; 01516 static inline int getTypeCode() { return TypeCode::FloatChannel; } 01517 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 01518 typedef int PeakType; 01519 typedef double ScaleType; 01520 }; 01521 01522 template<> 01523 class TypeUtilityBase<const FloatChannel> 01524 { 01525 public: 01526 typedef const FloatChannel TypeName; 01527 typedef FloatChannel OriginalType; 01528 typedef FloatChannel const& PassType; 01529 typedef float IndexType; 01530 static inline int getTypeCode() { return TypeCode::FloatChannel; } 01531 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 01532 typedef int PeakType; 01533 typedef double ScaleType; 01534 }; 01535 01536 template<> 01537 class TypeUtilityBase<DoubleChannel> 01538 { 01539 public: 01540 typedef DoubleChannel TypeName; 01541 typedef DoubleChannel OriginalType; 01542 typedef DoubleChannel const& PassType; 01543 typedef double IndexType; 01544 static inline int getTypeCode() { return TypeCode::DoubleChannel; } 01545 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 01546 typedef int PeakType; 01547 typedef double ScaleType; 01548 }; 01549 01550 template<> 01551 class TypeUtilityBase<const DoubleChannel> 01552 { 01553 public: 01554 typedef const DoubleChannel TypeName; 01555 typedef DoubleChannel OriginalType; 01556 typedef DoubleChannel const& PassType; 01557 typedef double IndexType; 01558 static inline int getTypeCode() { return TypeCode::DoubleChannel; } 01559 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 01560 typedef int PeakType; 01561 typedef double ScaleType; 01562 }; 01563 01564 template<> 01565 class TypeUtilityBase<IntChannel> 01566 { 01567 public: 01568 typedef IntChannel TypeName; 01569 typedef IntChannel OriginalType; 01570 typedef IntChannel const& PassType; 01571 typedef float IndexType; 01572 static inline int getTypeCode() { return TypeCode::IntChannel; } 01573 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 01574 typedef int PeakType; 01575 typedef double ScaleType; 01576 }; 01577 01578 template<> 01579 class TypeUtilityBase<const IntChannel> 01580 { 01581 public: 01582 typedef const IntChannel TypeName; 01583 typedef IntChannel OriginalType; 01584 typedef IntChannel const& PassType; 01585 typedef float IndexType; 01586 static inline int getTypeCode() { return TypeCode::IntChannel; } 01587 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 01588 typedef int PeakType; 01589 typedef double ScaleType; 01590 }; 01591 01592 template<> 01593 class TypeUtilityBase<ShortChannel> 01594 { 01595 public: 01596 typedef ShortChannel TypeName; 01597 typedef ShortChannel OriginalType; 01598 typedef ShortChannel const& PassType; 01599 typedef float IndexType; 01600 static inline int getTypeCode() { return TypeCode::ShortChannel; } 01601 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 01602 typedef int PeakType; 01603 typedef double ScaleType; 01604 }; 01605 01606 template<> 01607 class TypeUtilityBase<const ShortChannel> 01608 { 01609 public: 01610 typedef const ShortChannel TypeName; 01611 typedef ShortChannel OriginalType; 01612 typedef ShortChannel const& PassType; 01613 typedef float IndexType; 01614 static inline int getTypeCode() { return TypeCode::ShortChannel; } 01615 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 01616 typedef int PeakType; 01617 typedef double ScaleType; 01618 }; 01619 01620 template<> 01621 class TypeUtilityBase<Int24Channel> 01622 { 01623 public: 01624 typedef Int24Channel TypeName; 01625 typedef Int24Channel OriginalType; 01626 typedef Int24Channel const& PassType; 01627 typedef float IndexType; 01628 static inline int getTypeCode() { return TypeCode::Int24Channel; } 01629 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 01630 typedef int PeakType; 01631 typedef double ScaleType; 01632 }; 01633 01634 template<> 01635 class TypeUtilityBase<const Int24Channel> 01636 { 01637 public: 01638 typedef const Int24Channel TypeName; 01639 typedef Int24Channel OriginalType; 01640 typedef Int24Channel const& PassType; 01641 typedef float IndexType; 01642 static inline int getTypeCode() { return TypeCode::Int24Channel; } 01643 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 01644 typedef int PeakType; 01645 typedef double ScaleType; 01646 }; 01647 01648 template<> 01649 class TypeUtilityBase<LongChannel> 01650 { 01651 public: 01652 typedef LongChannel TypeName; 01653 typedef LongChannel OriginalType; 01654 typedef LongChannel const& PassType; 01655 typedef float IndexType; 01656 static inline int getTypeCode() { return TypeCode::LongChannel; } 01657 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 01658 typedef int PeakType; 01659 typedef double ScaleType; 01660 }; 01661 01662 template<> 01663 class TypeUtilityBase<const LongChannel> 01664 { 01665 public: 01666 typedef const LongChannel TypeName; 01667 typedef LongChannel OriginalType; 01668 typedef LongChannel const& PassType; 01669 typedef float IndexType; 01670 static inline int getTypeCode() { return TypeCode::LongChannel; } 01671 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 01672 typedef int PeakType; 01673 typedef double ScaleType; 01674 }; 01675 01676 template<> 01677 class TypeUtilityBase<FloatUnit> 01678 { 01679 public: 01680 typedef FloatUnit TypeName; 01681 typedef FloatUnit OriginalType; 01682 typedef FloatUnit const& PassType; 01683 typedef float IndexType; 01684 static inline int getTypeCode() { return TypeCode::FloatUnit; } 01685 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 01686 typedef int PeakType; 01687 typedef double ScaleType; 01688 }; 01689 01690 template<> 01691 class TypeUtilityBase<const FloatUnit> 01692 { 01693 public: 01694 typedef const FloatUnit TypeName; 01695 typedef FloatUnit OriginalType; 01696 typedef FloatUnit const& PassType; 01697 typedef float IndexType; 01698 static inline int getTypeCode() { return TypeCode::FloatUnit; } 01699 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 01700 typedef int PeakType; 01701 typedef double ScaleType; 01702 }; 01703 01704 template<> 01705 class TypeUtilityBase<DoubleUnit> 01706 { 01707 public: 01708 typedef DoubleUnit TypeName; 01709 typedef DoubleUnit OriginalType; 01710 typedef DoubleUnit const& PassType; 01711 typedef double IndexType; 01712 static inline int getTypeCode() { return TypeCode::DoubleUnit; } 01713 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 01714 typedef int PeakType; 01715 typedef double ScaleType; 01716 }; 01717 01718 template<> 01719 class TypeUtilityBase<const DoubleUnit> 01720 { 01721 public: 01722 typedef const DoubleUnit TypeName; 01723 typedef DoubleUnit OriginalType; 01724 typedef DoubleUnit const& PassType; 01725 typedef double IndexType; 01726 static inline int getTypeCode() { return TypeCode::DoubleUnit; } 01727 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 01728 typedef int PeakType; 01729 typedef double ScaleType; 01730 }; 01731 01732 template<> 01733 class TypeUtilityBase<IntUnit> 01734 { 01735 public: 01736 typedef IntUnit TypeName; 01737 typedef IntUnit OriginalType; 01738 typedef IntUnit const& PassType; 01739 typedef float IndexType; 01740 static inline int getTypeCode() { return TypeCode::IntUnit; } 01741 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 01742 typedef int PeakType; 01743 typedef double ScaleType; 01744 }; 01745 01746 template<> 01747 class TypeUtilityBase<const IntUnit> 01748 { 01749 public: 01750 typedef const IntUnit TypeName; 01751 typedef IntUnit OriginalType; 01752 typedef IntUnit const& PassType; 01753 typedef float IndexType; 01754 static inline int getTypeCode() { return TypeCode::IntUnit; } 01755 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 01756 typedef int PeakType; 01757 typedef double ScaleType; 01758 }; 01759 01760 template<> 01761 class TypeUtilityBase<ShortUnit> 01762 { 01763 public: 01764 typedef ShortUnit TypeName; 01765 typedef ShortUnit OriginalType; 01766 typedef ShortUnit const& PassType; 01767 typedef float IndexType; 01768 static inline int getTypeCode() { return TypeCode::ShortUnit; } 01769 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 01770 typedef int PeakType; 01771 typedef double ScaleType; 01772 }; 01773 01774 template<> 01775 class TypeUtilityBase<const ShortUnit> 01776 { 01777 public: 01778 typedef const ShortUnit TypeName; 01779 typedef ShortUnit OriginalType; 01780 typedef ShortUnit const& PassType; 01781 typedef float IndexType; 01782 static inline int getTypeCode() { return TypeCode::ShortUnit; } 01783 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 01784 typedef int PeakType; 01785 typedef double ScaleType; 01786 }; 01787 01788 template<> 01789 class TypeUtilityBase<Int24Unit> 01790 { 01791 public: 01792 typedef Int24Unit TypeName; 01793 typedef Int24Unit OriginalType; 01794 typedef Int24Unit const& PassType; 01795 typedef float IndexType; 01796 static inline int getTypeCode() { return TypeCode::Int24Unit; } 01797 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 01798 typedef int PeakType; 01799 typedef double ScaleType; 01800 }; 01801 01802 template<> 01803 class TypeUtilityBase<const Int24Unit> 01804 { 01805 public: 01806 typedef const Int24Unit TypeName; 01807 typedef Int24Unit OriginalType; 01808 typedef Int24Unit const& PassType; 01809 typedef float IndexType; 01810 static inline int getTypeCode() { return TypeCode::Int24Unit; } 01811 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 01812 typedef int PeakType; 01813 typedef double ScaleType; 01814 }; 01815 01816 template<> 01817 class TypeUtilityBase<LongUnit> 01818 { 01819 public: 01820 typedef LongUnit TypeName; 01821 typedef LongUnit OriginalType; 01822 typedef LongUnit const& PassType; 01823 typedef float IndexType; 01824 static inline int getTypeCode() { return TypeCode::LongUnit; } 01825 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 01826 typedef int PeakType; 01827 typedef double ScaleType; 01828 }; 01829 01830 template<> 01831 class TypeUtilityBase<const LongUnit> 01832 { 01833 public: 01834 typedef const LongUnit TypeName; 01835 typedef LongUnit OriginalType; 01836 typedef LongUnit const& PassType; 01837 typedef float IndexType; 01838 static inline int getTypeCode() { return TypeCode::LongUnit; } 01839 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 01840 typedef int PeakType; 01841 typedef double ScaleType; 01842 }; 01843 01844 template<> 01845 class TypeUtilityBase<FloatBus> 01846 { 01847 public: 01848 typedef FloatBus TypeName; 01849 typedef FloatBus OriginalType; 01850 typedef FloatBus const& PassType; 01851 typedef float IndexType; 01852 static inline int getTypeCode() { return TypeCode::FloatBus; } 01853 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 01854 typedef int PeakType; 01855 typedef double ScaleType; 01856 }; 01857 01858 template<> 01859 class TypeUtilityBase<const FloatBus> 01860 { 01861 public: 01862 typedef const FloatBus TypeName; 01863 typedef FloatBus OriginalType; 01864 typedef FloatBus const& PassType; 01865 typedef float IndexType; 01866 static inline int getTypeCode() { return TypeCode::FloatBus; } 01867 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 01868 typedef int PeakType; 01869 typedef double ScaleType; 01870 }; 01871 01872 template<> 01873 class TypeUtilityBase<DoubleBus> 01874 { 01875 public: 01876 typedef DoubleBus TypeName; 01877 typedef DoubleBus OriginalType; 01878 typedef DoubleBus const& PassType; 01879 typedef double IndexType; 01880 static inline int getTypeCode() { return TypeCode::DoubleBus; } 01881 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 01882 typedef int PeakType; 01883 typedef double ScaleType; 01884 }; 01885 01886 template<> 01887 class TypeUtilityBase<const DoubleBus> 01888 { 01889 public: 01890 typedef const DoubleBus TypeName; 01891 typedef DoubleBus OriginalType; 01892 typedef DoubleBus const& PassType; 01893 typedef double IndexType; 01894 static inline int getTypeCode() { return TypeCode::DoubleBus; } 01895 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 01896 typedef int PeakType; 01897 typedef double ScaleType; 01898 }; 01899 01900 template<> 01901 class TypeUtilityBase<IntBus> 01902 { 01903 public: 01904 typedef IntBus TypeName; 01905 typedef IntBus OriginalType; 01906 typedef IntBus const& PassType; 01907 typedef float IndexType; 01908 static inline int getTypeCode() { return TypeCode::IntBus; } 01909 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 01910 typedef int PeakType; 01911 typedef double ScaleType; 01912 }; 01913 01914 template<> 01915 class TypeUtilityBase<const IntBus> 01916 { 01917 public: 01918 typedef const IntBus TypeName; 01919 typedef IntBus OriginalType; 01920 typedef IntBus const& PassType; 01921 typedef float IndexType; 01922 static inline int getTypeCode() { return TypeCode::IntBus; } 01923 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 01924 typedef int PeakType; 01925 typedef double ScaleType; 01926 }; 01927 01928 template<> 01929 class TypeUtilityBase<ShortBus> 01930 { 01931 public: 01932 typedef ShortBus TypeName; 01933 typedef ShortBus OriginalType; 01934 typedef ShortBus const& PassType; 01935 typedef float IndexType; 01936 static inline int getTypeCode() { return TypeCode::ShortBus; } 01937 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 01938 typedef int PeakType; 01939 typedef double ScaleType; 01940 }; 01941 01942 template<> 01943 class TypeUtilityBase<const ShortBus> 01944 { 01945 public: 01946 typedef const ShortBus TypeName; 01947 typedef ShortBus OriginalType; 01948 typedef ShortBus const& PassType; 01949 typedef float IndexType; 01950 static inline int getTypeCode() { return TypeCode::ShortBus; } 01951 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 01952 typedef int PeakType; 01953 typedef double ScaleType; 01954 }; 01955 01956 template<> 01957 class TypeUtilityBase<Int24Bus> 01958 { 01959 public: 01960 typedef Int24Bus TypeName; 01961 typedef Int24Bus OriginalType; 01962 typedef Int24Bus const& PassType; 01963 typedef float IndexType; 01964 static inline int getTypeCode() { return TypeCode::Int24Bus; } 01965 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 01966 typedef int PeakType; 01967 typedef double ScaleType; 01968 }; 01969 01970 template<> 01971 class TypeUtilityBase<const Int24Bus> 01972 { 01973 public: 01974 typedef const Int24Bus TypeName; 01975 typedef Int24Bus OriginalType; 01976 typedef Int24Bus const& PassType; 01977 typedef float IndexType; 01978 static inline int getTypeCode() { return TypeCode::Int24Bus; } 01979 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 01980 typedef int PeakType; 01981 typedef double ScaleType; 01982 }; 01983 01984 template<> 01985 class TypeUtilityBase<LongBus> 01986 { 01987 public: 01988 typedef LongBus TypeName; 01989 typedef LongBus OriginalType; 01990 typedef LongBus const& PassType; 01991 typedef float IndexType; 01992 static inline int getTypeCode() { return TypeCode::LongBus; } 01993 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 01994 typedef int PeakType; 01995 typedef double ScaleType; 01996 }; 01997 01998 template<> 01999 class TypeUtilityBase<const LongBus> 02000 { 02001 public: 02002 typedef const LongBus TypeName; 02003 typedef LongBus OriginalType; 02004 typedef LongBus const& PassType; 02005 typedef float IndexType; 02006 static inline int getTypeCode() { return TypeCode::LongBus; } 02007 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 02008 typedef int PeakType; 02009 typedef double ScaleType; 02010 }; 02011 02012 template<> 02013 class TypeUtilityBase<FloatUnits> 02014 { 02015 public: 02016 typedef FloatUnits TypeName; 02017 typedef FloatUnits OriginalType; 02018 typedef FloatUnits const& PassType; 02019 typedef float IndexType; 02020 static inline int getTypeCode() { return TypeCode::FloatUnits; } 02021 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 02022 typedef int PeakType; 02023 typedef double ScaleType; 02024 }; 02025 02026 template<> 02027 class TypeUtilityBase<const FloatUnits> 02028 { 02029 public: 02030 typedef const FloatUnits TypeName; 02031 typedef FloatUnits OriginalType; 02032 typedef FloatUnits const& PassType; 02033 typedef float IndexType; 02034 static inline int getTypeCode() { return TypeCode::FloatUnits; } 02035 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 02036 typedef int PeakType; 02037 typedef double ScaleType; 02038 }; 02039 02040 template<> 02041 class TypeUtilityBase<DoubleUnits> 02042 { 02043 public: 02044 typedef DoubleUnits TypeName; 02045 typedef DoubleUnits OriginalType; 02046 typedef DoubleUnits const& PassType; 02047 typedef double IndexType; 02048 static inline int getTypeCode() { return TypeCode::DoubleUnits; } 02049 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 02050 typedef int PeakType; 02051 typedef double ScaleType; 02052 }; 02053 02054 template<> 02055 class TypeUtilityBase<const DoubleUnits> 02056 { 02057 public: 02058 typedef const DoubleUnits TypeName; 02059 typedef DoubleUnits OriginalType; 02060 typedef DoubleUnits const& PassType; 02061 typedef double IndexType; 02062 static inline int getTypeCode() { return TypeCode::DoubleUnits; } 02063 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 02064 typedef int PeakType; 02065 typedef double ScaleType; 02066 }; 02067 02068 template<> 02069 class TypeUtilityBase<IntUnits> 02070 { 02071 public: 02072 typedef IntUnits TypeName; 02073 typedef IntUnits OriginalType; 02074 typedef IntUnits const& PassType; 02075 typedef float IndexType; 02076 static inline int getTypeCode() { return TypeCode::IntUnits; } 02077 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 02078 typedef int PeakType; 02079 typedef double ScaleType; 02080 }; 02081 02082 template<> 02083 class TypeUtilityBase<const IntUnits> 02084 { 02085 public: 02086 typedef const IntUnits TypeName; 02087 typedef IntUnits OriginalType; 02088 typedef IntUnits const& PassType; 02089 typedef float IndexType; 02090 static inline int getTypeCode() { return TypeCode::IntUnits; } 02091 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 02092 typedef int PeakType; 02093 typedef double ScaleType; 02094 }; 02095 02096 template<> 02097 class TypeUtilityBase<ShortUnits> 02098 { 02099 public: 02100 typedef ShortUnits TypeName; 02101 typedef ShortUnits OriginalType; 02102 typedef ShortUnits const& PassType; 02103 typedef float IndexType; 02104 static inline int getTypeCode() { return TypeCode::ShortUnits; } 02105 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 02106 typedef int PeakType; 02107 typedef double ScaleType; 02108 }; 02109 02110 template<> 02111 class TypeUtilityBase<const ShortUnits> 02112 { 02113 public: 02114 typedef const ShortUnits TypeName; 02115 typedef ShortUnits OriginalType; 02116 typedef ShortUnits const& PassType; 02117 typedef float IndexType; 02118 static inline int getTypeCode() { return TypeCode::ShortUnits; } 02119 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 02120 typedef int PeakType; 02121 typedef double ScaleType; 02122 }; 02123 02124 template<> 02125 class TypeUtilityBase<Int24Units> 02126 { 02127 public: 02128 typedef Int24Units TypeName; 02129 typedef Int24Units OriginalType; 02130 typedef Int24Units const& PassType; 02131 typedef float IndexType; 02132 static inline int getTypeCode() { return TypeCode::Int24Units; } 02133 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 02134 typedef int PeakType; 02135 typedef double ScaleType; 02136 }; 02137 02138 template<> 02139 class TypeUtilityBase<const Int24Units> 02140 { 02141 public: 02142 typedef const Int24Units TypeName; 02143 typedef Int24Units OriginalType; 02144 typedef Int24Units const& PassType; 02145 typedef float IndexType; 02146 static inline int getTypeCode() { return TypeCode::Int24Units; } 02147 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 02148 typedef int PeakType; 02149 typedef double ScaleType; 02150 }; 02151 02152 template<> 02153 class TypeUtilityBase<LongUnits> 02154 { 02155 public: 02156 typedef LongUnits TypeName; 02157 typedef LongUnits OriginalType; 02158 typedef LongUnits const& PassType; 02159 typedef float IndexType; 02160 static inline int getTypeCode() { return TypeCode::LongUnits; } 02161 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 02162 typedef int PeakType; 02163 typedef double ScaleType; 02164 }; 02165 02166 template<> 02167 class TypeUtilityBase<const LongUnits> 02168 { 02169 public: 02170 typedef const LongUnits TypeName; 02171 typedef LongUnits OriginalType; 02172 typedef LongUnits const& PassType; 02173 typedef float IndexType; 02174 static inline int getTypeCode() { return TypeCode::LongUnits; } 02175 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 02176 typedef int PeakType; 02177 typedef double ScaleType; 02178 }; 02179 02180 template<> 02181 class TypeUtilityBase<FloatBusses> 02182 { 02183 public: 02184 typedef FloatBusses TypeName; 02185 typedef FloatBusses OriginalType; 02186 typedef FloatBusses const& PassType; 02187 typedef float IndexType; 02188 static inline int getTypeCode() { return TypeCode::FloatBusses; } 02189 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 02190 typedef int PeakType; 02191 typedef double ScaleType; 02192 }; 02193 02194 template<> 02195 class TypeUtilityBase<const FloatBusses> 02196 { 02197 public: 02198 typedef const FloatBusses TypeName; 02199 typedef FloatBusses OriginalType; 02200 typedef FloatBusses const& PassType; 02201 typedef float IndexType; 02202 static inline int getTypeCode() { return TypeCode::FloatBusses; } 02203 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 02204 typedef int PeakType; 02205 typedef double ScaleType; 02206 }; 02207 02208 template<> 02209 class TypeUtilityBase<DoubleBusses> 02210 { 02211 public: 02212 typedef DoubleBusses TypeName; 02213 typedef DoubleBusses OriginalType; 02214 typedef DoubleBusses const& PassType; 02215 typedef double IndexType; 02216 static inline int getTypeCode() { return TypeCode::DoubleBusses; } 02217 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 02218 typedef int PeakType; 02219 typedef double ScaleType; 02220 }; 02221 02222 template<> 02223 class TypeUtilityBase<const DoubleBusses> 02224 { 02225 public: 02226 typedef const DoubleBusses TypeName; 02227 typedef DoubleBusses OriginalType; 02228 typedef DoubleBusses const& PassType; 02229 typedef double IndexType; 02230 static inline int getTypeCode() { return TypeCode::DoubleBusses; } 02231 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 02232 typedef int PeakType; 02233 typedef double ScaleType; 02234 }; 02235 02236 template<> 02237 class TypeUtilityBase<IntBusses> 02238 { 02239 public: 02240 typedef IntBusses TypeName; 02241 typedef IntBusses OriginalType; 02242 typedef IntBusses const& PassType; 02243 typedef float IndexType; 02244 static inline int getTypeCode() { return TypeCode::IntBusses; } 02245 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 02246 typedef int PeakType; 02247 typedef double ScaleType; 02248 }; 02249 02250 template<> 02251 class TypeUtilityBase<const IntBusses> 02252 { 02253 public: 02254 typedef const IntBusses TypeName; 02255 typedef IntBusses OriginalType; 02256 typedef IntBusses const& PassType; 02257 typedef float IndexType; 02258 static inline int getTypeCode() { return TypeCode::IntBusses; } 02259 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 02260 typedef int PeakType; 02261 typedef double ScaleType; 02262 }; 02263 02264 template<> 02265 class TypeUtilityBase<ShortBusses> 02266 { 02267 public: 02268 typedef ShortBusses TypeName; 02269 typedef ShortBusses OriginalType; 02270 typedef ShortBusses const& PassType; 02271 typedef float IndexType; 02272 static inline int getTypeCode() { return TypeCode::ShortBusses; } 02273 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 02274 typedef int PeakType; 02275 typedef double ScaleType; 02276 }; 02277 02278 template<> 02279 class TypeUtilityBase<const ShortBusses> 02280 { 02281 public: 02282 typedef const ShortBusses TypeName; 02283 typedef ShortBusses OriginalType; 02284 typedef ShortBusses const& PassType; 02285 typedef float IndexType; 02286 static inline int getTypeCode() { return TypeCode::ShortBusses; } 02287 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 02288 typedef int PeakType; 02289 typedef double ScaleType; 02290 }; 02291 02292 template<> 02293 class TypeUtilityBase<Int24Busses> 02294 { 02295 public: 02296 typedef Int24Busses TypeName; 02297 typedef Int24Busses OriginalType; 02298 typedef Int24Busses const& PassType; 02299 typedef float IndexType; 02300 static inline int getTypeCode() { return TypeCode::Int24Busses; } 02301 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 02302 typedef int PeakType; 02303 typedef double ScaleType; 02304 }; 02305 02306 template<> 02307 class TypeUtilityBase<const Int24Busses> 02308 { 02309 public: 02310 typedef const Int24Busses TypeName; 02311 typedef Int24Busses OriginalType; 02312 typedef Int24Busses const& PassType; 02313 typedef float IndexType; 02314 static inline int getTypeCode() { return TypeCode::Int24Busses; } 02315 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 02316 typedef int PeakType; 02317 typedef double ScaleType; 02318 }; 02319 02320 template<> 02321 class TypeUtilityBase<LongBusses> 02322 { 02323 public: 02324 typedef LongBusses TypeName; 02325 typedef LongBusses OriginalType; 02326 typedef LongBusses const& PassType; 02327 typedef float IndexType; 02328 static inline int getTypeCode() { return TypeCode::LongBusses; } 02329 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 02330 typedef int PeakType; 02331 typedef double ScaleType; 02332 }; 02333 02334 template<> 02335 class TypeUtilityBase<const LongBusses> 02336 { 02337 public: 02338 typedef const LongBusses TypeName; 02339 typedef LongBusses OriginalType; 02340 typedef LongBusses const& PassType; 02341 typedef float IndexType; 02342 static inline int getTypeCode() { return TypeCode::LongBusses; } 02343 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 02344 typedef int PeakType; 02345 typedef double ScaleType; 02346 }; 02347 02348 template<> 02349 class TypeUtilityBase<FloatBreakpoints> 02350 { 02351 public: 02352 typedef FloatBreakpoints TypeName; 02353 typedef FloatBreakpoints OriginalType; 02354 typedef FloatBreakpoints const& PassType; 02355 typedef float IndexType; 02356 static inline int getTypeCode() { return TypeCode::FloatBreakpoints; } 02357 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 02358 typedef int PeakType; 02359 typedef double ScaleType; 02360 }; 02361 02362 template<> 02363 class TypeUtilityBase<const FloatBreakpoints> 02364 { 02365 public: 02366 typedef const FloatBreakpoints TypeName; 02367 typedef FloatBreakpoints OriginalType; 02368 typedef FloatBreakpoints const& PassType; 02369 typedef float IndexType; 02370 static inline int getTypeCode() { return TypeCode::FloatBreakpoints; } 02371 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 02372 typedef int PeakType; 02373 typedef double ScaleType; 02374 }; 02375 02376 template<> 02377 class TypeUtilityBase<DoubleBreakpoints> 02378 { 02379 public: 02380 typedef DoubleBreakpoints TypeName; 02381 typedef DoubleBreakpoints OriginalType; 02382 typedef DoubleBreakpoints const& PassType; 02383 typedef double IndexType; 02384 static inline int getTypeCode() { return TypeCode::DoubleBreakpoints; } 02385 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 02386 typedef int PeakType; 02387 typedef double ScaleType; 02388 }; 02389 02390 template<> 02391 class TypeUtilityBase<const DoubleBreakpoints> 02392 { 02393 public: 02394 typedef const DoubleBreakpoints TypeName; 02395 typedef DoubleBreakpoints OriginalType; 02396 typedef DoubleBreakpoints const& PassType; 02397 typedef double IndexType; 02398 static inline int getTypeCode() { return TypeCode::DoubleBreakpoints; } 02399 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 02400 typedef int PeakType; 02401 typedef double ScaleType; 02402 }; 02403 02404 template<> 02405 class TypeUtilityBase<IntBreakpoints> 02406 { 02407 public: 02408 typedef IntBreakpoints TypeName; 02409 typedef IntBreakpoints OriginalType; 02410 typedef IntBreakpoints const& PassType; 02411 typedef float IndexType; 02412 static inline int getTypeCode() { return TypeCode::IntBreakpoints; } 02413 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 02414 typedef int PeakType; 02415 typedef double ScaleType; 02416 }; 02417 02418 template<> 02419 class TypeUtilityBase<const IntBreakpoints> 02420 { 02421 public: 02422 typedef const IntBreakpoints TypeName; 02423 typedef IntBreakpoints OriginalType; 02424 typedef IntBreakpoints const& PassType; 02425 typedef float IndexType; 02426 static inline int getTypeCode() { return TypeCode::IntBreakpoints; } 02427 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 02428 typedef int PeakType; 02429 typedef double ScaleType; 02430 }; 02431 02432 template<> 02433 class TypeUtilityBase<ShortBreakpoints> 02434 { 02435 public: 02436 typedef ShortBreakpoints TypeName; 02437 typedef ShortBreakpoints OriginalType; 02438 typedef ShortBreakpoints const& PassType; 02439 typedef float IndexType; 02440 static inline int getTypeCode() { return TypeCode::ShortBreakpoints; } 02441 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 02442 typedef int PeakType; 02443 typedef double ScaleType; 02444 }; 02445 02446 template<> 02447 class TypeUtilityBase<const ShortBreakpoints> 02448 { 02449 public: 02450 typedef const ShortBreakpoints TypeName; 02451 typedef ShortBreakpoints OriginalType; 02452 typedef ShortBreakpoints const& PassType; 02453 typedef float IndexType; 02454 static inline int getTypeCode() { return TypeCode::ShortBreakpoints; } 02455 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 02456 typedef int PeakType; 02457 typedef double ScaleType; 02458 }; 02459 02460 template<> 02461 class TypeUtilityBase<Int24Breakpoints> 02462 { 02463 public: 02464 typedef Int24Breakpoints TypeName; 02465 typedef Int24Breakpoints OriginalType; 02466 typedef Int24Breakpoints const& PassType; 02467 typedef float IndexType; 02468 static inline int getTypeCode() { return TypeCode::Int24Breakpoints; } 02469 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 02470 typedef int PeakType; 02471 typedef double ScaleType; 02472 }; 02473 02474 template<> 02475 class TypeUtilityBase<const Int24Breakpoints> 02476 { 02477 public: 02478 typedef const Int24Breakpoints TypeName; 02479 typedef Int24Breakpoints OriginalType; 02480 typedef Int24Breakpoints const& PassType; 02481 typedef float IndexType; 02482 static inline int getTypeCode() { return TypeCode::Int24Breakpoints; } 02483 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 02484 typedef int PeakType; 02485 typedef double ScaleType; 02486 }; 02487 02488 template<> 02489 class TypeUtilityBase<LongBreakpoints> 02490 { 02491 public: 02492 typedef LongBreakpoints TypeName; 02493 typedef LongBreakpoints OriginalType; 02494 typedef LongBreakpoints const& PassType; 02495 typedef float IndexType; 02496 static inline int getTypeCode() { return TypeCode::LongBreakpoints; } 02497 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 02498 typedef int PeakType; 02499 typedef double ScaleType; 02500 }; 02501 02502 template<> 02503 class TypeUtilityBase<const LongBreakpoints> 02504 { 02505 public: 02506 typedef const LongBreakpoints TypeName; 02507 typedef LongBreakpoints OriginalType; 02508 typedef LongBreakpoints const& PassType; 02509 typedef float IndexType; 02510 static inline int getTypeCode() { return TypeCode::LongBreakpoints; } 02511 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 02512 typedef int PeakType; 02513 typedef double ScaleType; 02514 }; 02515 02516 template<> 02517 class TypeUtilityBase<FloatWavetable> 02518 { 02519 public: 02520 typedef FloatWavetable TypeName; 02521 typedef FloatWavetable OriginalType; 02522 typedef FloatWavetable const& PassType; 02523 typedef float IndexType; 02524 static inline int getTypeCode() { return TypeCode::FloatWavetable; } 02525 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 02526 typedef int PeakType; 02527 typedef double ScaleType; 02528 }; 02529 02530 template<> 02531 class TypeUtilityBase<const FloatWavetable> 02532 { 02533 public: 02534 typedef const FloatWavetable TypeName; 02535 typedef FloatWavetable OriginalType; 02536 typedef FloatWavetable const& PassType; 02537 typedef float IndexType; 02538 static inline int getTypeCode() { return TypeCode::FloatWavetable; } 02539 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 02540 typedef int PeakType; 02541 typedef double ScaleType; 02542 }; 02543 02544 template<> 02545 class TypeUtilityBase<DoubleWavetable> 02546 { 02547 public: 02548 typedef DoubleWavetable TypeName; 02549 typedef DoubleWavetable OriginalType; 02550 typedef DoubleWavetable const& PassType; 02551 typedef double IndexType; 02552 static inline int getTypeCode() { return TypeCode::DoubleWavetable; } 02553 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 02554 typedef int PeakType; 02555 typedef double ScaleType; 02556 }; 02557 02558 template<> 02559 class TypeUtilityBase<const DoubleWavetable> 02560 { 02561 public: 02562 typedef const DoubleWavetable TypeName; 02563 typedef DoubleWavetable OriginalType; 02564 typedef DoubleWavetable const& PassType; 02565 typedef double IndexType; 02566 static inline int getTypeCode() { return TypeCode::DoubleWavetable; } 02567 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 02568 typedef int PeakType; 02569 typedef double ScaleType; 02570 }; 02571 02572 template<> 02573 class TypeUtilityBase<IntWavetable> 02574 { 02575 public: 02576 typedef IntWavetable TypeName; 02577 typedef IntWavetable OriginalType; 02578 typedef IntWavetable const& PassType; 02579 typedef float IndexType; 02580 static inline int getTypeCode() { return TypeCode::IntWavetable; } 02581 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 02582 typedef int PeakType; 02583 typedef double ScaleType; 02584 }; 02585 02586 template<> 02587 class TypeUtilityBase<const IntWavetable> 02588 { 02589 public: 02590 typedef const IntWavetable TypeName; 02591 typedef IntWavetable OriginalType; 02592 typedef IntWavetable const& PassType; 02593 typedef float IndexType; 02594 static inline int getTypeCode() { return TypeCode::IntWavetable; } 02595 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 02596 typedef int PeakType; 02597 typedef double ScaleType; 02598 }; 02599 02600 template<> 02601 class TypeUtilityBase<ShortWavetable> 02602 { 02603 public: 02604 typedef ShortWavetable TypeName; 02605 typedef ShortWavetable OriginalType; 02606 typedef ShortWavetable const& PassType; 02607 typedef float IndexType; 02608 static inline int getTypeCode() { return TypeCode::ShortWavetable; } 02609 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 02610 typedef int PeakType; 02611 typedef double ScaleType; 02612 }; 02613 02614 template<> 02615 class TypeUtilityBase<const ShortWavetable> 02616 { 02617 public: 02618 typedef const ShortWavetable TypeName; 02619 typedef ShortWavetable OriginalType; 02620 typedef ShortWavetable const& PassType; 02621 typedef float IndexType; 02622 static inline int getTypeCode() { return TypeCode::ShortWavetable; } 02623 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 02624 typedef int PeakType; 02625 typedef double ScaleType; 02626 }; 02627 02628 template<> 02629 class TypeUtilityBase<Int24Wavetable> 02630 { 02631 public: 02632 typedef Int24Wavetable TypeName; 02633 typedef Int24Wavetable OriginalType; 02634 typedef Int24Wavetable const& PassType; 02635 typedef float IndexType; 02636 static inline int getTypeCode() { return TypeCode::Int24Wavetable; } 02637 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 02638 typedef int PeakType; 02639 typedef double ScaleType; 02640 }; 02641 02642 template<> 02643 class TypeUtilityBase<const Int24Wavetable> 02644 { 02645 public: 02646 typedef const Int24Wavetable TypeName; 02647 typedef Int24Wavetable OriginalType; 02648 typedef Int24Wavetable const& PassType; 02649 typedef float IndexType; 02650 static inline int getTypeCode() { return TypeCode::Int24Wavetable; } 02651 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 02652 typedef int PeakType; 02653 typedef double ScaleType; 02654 }; 02655 02656 template<> 02657 class TypeUtilityBase<LongWavetable> 02658 { 02659 public: 02660 typedef LongWavetable TypeName; 02661 typedef LongWavetable OriginalType; 02662 typedef LongWavetable const& PassType; 02663 typedef float IndexType; 02664 static inline int getTypeCode() { return TypeCode::LongWavetable; } 02665 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 02666 typedef int PeakType; 02667 typedef double ScaleType; 02668 }; 02669 02670 template<> 02671 class TypeUtilityBase<const LongWavetable> 02672 { 02673 public: 02674 typedef const LongWavetable TypeName; 02675 typedef LongWavetable OriginalType; 02676 typedef LongWavetable const& PassType; 02677 typedef float IndexType; 02678 static inline int getTypeCode() { return TypeCode::LongWavetable; } 02679 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 02680 typedef int PeakType; 02681 typedef double ScaleType; 02682 }; 02683 02684 template<> 02685 class TypeUtilityBase<FloatSignal> 02686 { 02687 public: 02688 typedef FloatSignal TypeName; 02689 typedef FloatSignal OriginalType; 02690 typedef FloatSignal const& PassType; 02691 typedef float IndexType; 02692 static inline int getTypeCode() { return TypeCode::FloatSignal; } 02693 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 02694 typedef int PeakType; 02695 typedef double ScaleType; 02696 }; 02697 02698 template<> 02699 class TypeUtilityBase<const FloatSignal> 02700 { 02701 public: 02702 typedef const FloatSignal TypeName; 02703 typedef FloatSignal OriginalType; 02704 typedef FloatSignal const& PassType; 02705 typedef float IndexType; 02706 static inline int getTypeCode() { return TypeCode::FloatSignal; } 02707 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 02708 typedef int PeakType; 02709 typedef double ScaleType; 02710 }; 02711 02712 template<> 02713 class TypeUtilityBase<DoubleSignal> 02714 { 02715 public: 02716 typedef DoubleSignal TypeName; 02717 typedef DoubleSignal OriginalType; 02718 typedef DoubleSignal const& PassType; 02719 typedef double IndexType; 02720 static inline int getTypeCode() { return TypeCode::DoubleSignal; } 02721 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 02722 typedef int PeakType; 02723 typedef double ScaleType; 02724 }; 02725 02726 template<> 02727 class TypeUtilityBase<const DoubleSignal> 02728 { 02729 public: 02730 typedef const DoubleSignal TypeName; 02731 typedef DoubleSignal OriginalType; 02732 typedef DoubleSignal const& PassType; 02733 typedef double IndexType; 02734 static inline int getTypeCode() { return TypeCode::DoubleSignal; } 02735 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 02736 typedef int PeakType; 02737 typedef double ScaleType; 02738 }; 02739 02740 template<> 02741 class TypeUtilityBase<IntSignal> 02742 { 02743 public: 02744 typedef IntSignal TypeName; 02745 typedef IntSignal OriginalType; 02746 typedef IntSignal const& PassType; 02747 typedef float IndexType; 02748 static inline int getTypeCode() { return TypeCode::IntSignal; } 02749 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 02750 typedef int PeakType; 02751 typedef double ScaleType; 02752 }; 02753 02754 template<> 02755 class TypeUtilityBase<const IntSignal> 02756 { 02757 public: 02758 typedef const IntSignal TypeName; 02759 typedef IntSignal OriginalType; 02760 typedef IntSignal const& PassType; 02761 typedef float IndexType; 02762 static inline int getTypeCode() { return TypeCode::IntSignal; } 02763 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 02764 typedef int PeakType; 02765 typedef double ScaleType; 02766 }; 02767 02768 template<> 02769 class TypeUtilityBase<ShortSignal> 02770 { 02771 public: 02772 typedef ShortSignal TypeName; 02773 typedef ShortSignal OriginalType; 02774 typedef ShortSignal const& PassType; 02775 typedef float IndexType; 02776 static inline int getTypeCode() { return TypeCode::ShortSignal; } 02777 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 02778 typedef int PeakType; 02779 typedef double ScaleType; 02780 }; 02781 02782 template<> 02783 class TypeUtilityBase<const ShortSignal> 02784 { 02785 public: 02786 typedef const ShortSignal TypeName; 02787 typedef ShortSignal OriginalType; 02788 typedef ShortSignal const& PassType; 02789 typedef float IndexType; 02790 static inline int getTypeCode() { return TypeCode::ShortSignal; } 02791 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 02792 typedef int PeakType; 02793 typedef double ScaleType; 02794 }; 02795 02796 template<> 02797 class TypeUtilityBase<Int24Signal> 02798 { 02799 public: 02800 typedef Int24Signal TypeName; 02801 typedef Int24Signal OriginalType; 02802 typedef Int24Signal const& PassType; 02803 typedef float IndexType; 02804 static inline int getTypeCode() { return TypeCode::Int24Signal; } 02805 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 02806 typedef int PeakType; 02807 typedef double ScaleType; 02808 }; 02809 02810 template<> 02811 class TypeUtilityBase<const Int24Signal> 02812 { 02813 public: 02814 typedef const Int24Signal TypeName; 02815 typedef Int24Signal OriginalType; 02816 typedef Int24Signal const& PassType; 02817 typedef float IndexType; 02818 static inline int getTypeCode() { return TypeCode::Int24Signal; } 02819 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 02820 typedef int PeakType; 02821 typedef double ScaleType; 02822 }; 02823 02824 template<> 02825 class TypeUtilityBase<LongSignal> 02826 { 02827 public: 02828 typedef LongSignal TypeName; 02829 typedef LongSignal OriginalType; 02830 typedef LongSignal const& PassType; 02831 typedef float IndexType; 02832 static inline int getTypeCode() { return TypeCode::LongSignal; } 02833 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 02834 typedef int PeakType; 02835 typedef double ScaleType; 02836 }; 02837 02838 template<> 02839 class TypeUtilityBase<const LongSignal> 02840 { 02841 public: 02842 typedef const LongSignal TypeName; 02843 typedef LongSignal OriginalType; 02844 typedef LongSignal const& PassType; 02845 typedef float IndexType; 02846 static inline int getTypeCode() { return TypeCode::LongSignal; } 02847 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 02848 typedef int PeakType; 02849 typedef double ScaleType; 02850 }; 02851 02852 02853 //------------------------------------------------------------------------------ 02854 02855 template<> 02856 class TypeUtilityBase<FloatArrayVariable> 02857 { 02858 public: 02859 typedef FloatArrayVariable TypeName; 02860 typedef FloatArrayVariable OriginalType; 02861 typedef FloatArrayVariable const& PassType; 02862 typedef float IndexType; 02863 static inline int getTypeCode() { return TypeCode::FloatArrayVariable; } 02864 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 02865 typedef int PeakType; 02866 typedef double ScaleType; 02867 }; 02868 02869 template<> 02870 class TypeUtilityBase<const FloatArrayVariable> 02871 { 02872 public: 02873 typedef const FloatArrayVariable TypeName; 02874 typedef FloatArrayVariable OriginalType; 02875 typedef FloatArrayVariable const& PassType; 02876 typedef float IndexType; 02877 static inline int getTypeCode() { return TypeCode::FloatArrayVariable; } 02878 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 02879 typedef int PeakType; 02880 typedef double ScaleType; 02881 }; 02882 02883 02884 template<> 02885 class TypeUtilityBase<DoubleArrayVariable> 02886 { 02887 public: 02888 typedef DoubleArrayVariable TypeName; 02889 typedef DoubleArrayVariable OriginalType; 02890 typedef DoubleArrayVariable const& PassType; 02891 typedef double IndexType; 02892 static inline int getTypeCode() { return TypeCode::DoubleArrayVariable; } 02893 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 02894 typedef int PeakType; 02895 typedef double ScaleType; 02896 }; 02897 02898 template<> 02899 class TypeUtilityBase<const DoubleArrayVariable> 02900 { 02901 public: 02902 typedef const DoubleArrayVariable TypeName; 02903 typedef DoubleArrayVariable OriginalType; 02904 typedef DoubleArrayVariable const& PassType; 02905 typedef double IndexType; 02906 static inline int getTypeCode() { return TypeCode::DoubleArrayVariable; } 02907 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 02908 typedef int PeakType; 02909 typedef double ScaleType; 02910 }; 02911 02912 template<> 02913 class TypeUtilityBase<IntArrayVariable> 02914 { 02915 public: 02916 typedef IntArrayVariable TypeName; 02917 typedef IntArrayVariable OriginalType; 02918 typedef IntArrayVariable const& PassType; 02919 typedef float IndexType; 02920 static inline int getTypeCode() { return TypeCode::IntArrayVariable; } 02921 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 02922 typedef int PeakType; 02923 typedef double ScaleType; 02924 }; 02925 02926 template<> 02927 class TypeUtilityBase<const IntArrayVariable> 02928 { 02929 public: 02930 typedef const IntArrayVariable TypeName; 02931 typedef IntArrayVariable OriginalType; 02932 typedef IntArrayVariable const& PassType; 02933 typedef float IndexType; 02934 static inline int getTypeCode() { return TypeCode::IntArrayVariable; } 02935 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 02936 typedef int PeakType; 02937 typedef double ScaleType; 02938 }; 02939 02940 template<> 02941 class TypeUtilityBase<ShortArrayVariable> 02942 { 02943 public: 02944 typedef ShortArrayVariable TypeName; 02945 typedef ShortArrayVariable OriginalType; 02946 typedef ShortArrayVariable const& PassType; 02947 typedef float IndexType; 02948 static inline int getTypeCode() { return TypeCode::ShortArrayVariable; } 02949 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 02950 typedef int PeakType; 02951 typedef double ScaleType; 02952 }; 02953 02954 template<> 02955 class TypeUtilityBase<const ShortArrayVariable> 02956 { 02957 public: 02958 typedef const ShortArrayVariable TypeName; 02959 typedef ShortArrayVariable OriginalType; 02960 typedef ShortArrayVariable const& PassType; 02961 typedef float IndexType; 02962 static inline int getTypeCode() { return TypeCode::ShortArrayVariable; } 02963 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 02964 typedef int PeakType; 02965 typedef double ScaleType; 02966 }; 02967 02968 template<> 02969 class TypeUtilityBase<Int24ArrayVariable> 02970 { 02971 public: 02972 typedef Int24ArrayVariable TypeName; 02973 typedef Int24ArrayVariable OriginalType; 02974 typedef Int24ArrayVariable const& PassType; 02975 typedef float IndexType; 02976 static inline int getTypeCode() { return TypeCode::Int24ArrayVariable; } 02977 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 02978 typedef int PeakType; 02979 typedef double ScaleType; 02980 }; 02981 02982 template<> 02983 class TypeUtilityBase<const Int24ArrayVariable> 02984 { 02985 public: 02986 typedef const Int24ArrayVariable TypeName; 02987 typedef Int24ArrayVariable OriginalType; 02988 typedef Int24ArrayVariable const& PassType; 02989 typedef float IndexType; 02990 static inline int getTypeCode() { return TypeCode::Int24ArrayVariable; } 02991 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 02992 typedef int PeakType; 02993 typedef double ScaleType; 02994 }; 02995 02996 template<> 02997 class TypeUtilityBase<LongArrayVariable> 02998 { 02999 public: 03000 typedef LongArrayVariable TypeName; 03001 typedef LongArrayVariable OriginalType; 03002 typedef LongArrayVariable const& PassType; 03003 typedef float IndexType; 03004 static inline int getTypeCode() { return TypeCode::LongArrayVariable; } 03005 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 03006 typedef int PeakType; 03007 typedef double ScaleType; 03008 }; 03009 03010 template<> 03011 class TypeUtilityBase<const LongArrayVariable> 03012 { 03013 public: 03014 typedef const LongArrayVariable TypeName; 03015 typedef LongArrayVariable OriginalType; 03016 typedef LongArrayVariable const& PassType; 03017 typedef float IndexType; 03018 static inline int getTypeCode() { return TypeCode::LongArrayVariable; } 03019 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 03020 typedef int PeakType; 03021 typedef double ScaleType; 03022 }; 03023 03024 template<> 03025 class TypeUtilityBase<CharArrayVariable> 03026 { 03027 public: 03028 typedef CharArrayVariable TypeName; 03029 typedef CharArrayVariable OriginalType; 03030 typedef CharArrayVariable const& PassType; 03031 typedef float IndexType; 03032 static inline int getTypeCode() { return TypeCode::CharArrayVariable; } 03033 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 03034 typedef int PeakType; 03035 typedef double ScaleType; 03036 }; 03037 03038 template<> 03039 class TypeUtilityBase<const CharArrayVariable> 03040 { 03041 public: 03042 typedef const CharArrayVariable TypeName; 03043 typedef CharArrayVariable OriginalType; 03044 typedef CharArrayVariable const& PassType; 03045 typedef float IndexType; 03046 static inline int getTypeCode() { return TypeCode::CharArrayVariable; } 03047 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 03048 typedef int PeakType; 03049 typedef double ScaleType; 03050 }; 03051 03052 template<> 03053 class TypeUtilityBase<BoolArrayVariable> 03054 { 03055 public: 03056 typedef BoolArrayVariable TypeName; 03057 typedef BoolArrayVariable OriginalType; 03058 typedef BoolArrayVariable const& PassType; 03059 typedef float IndexType; 03060 static inline int getTypeCode() { return TypeCode::BoolArrayVariable; } 03061 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 03062 typedef int PeakType; 03063 typedef double ScaleType; 03064 }; 03065 03066 template<> 03067 class TypeUtilityBase<const BoolArrayVariable> 03068 { 03069 public: 03070 typedef const BoolArrayVariable TypeName; 03071 typedef BoolArrayVariable OriginalType; 03072 typedef BoolArrayVariable const& PassType; 03073 typedef float IndexType; 03074 static inline int getTypeCode() { return TypeCode::BoolArrayVariable; } 03075 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 03076 typedef int PeakType; 03077 typedef double ScaleType; 03078 }; 03079 03080 template<> 03081 class TypeUtilityBase<plonk::TextVariable> 03082 { 03083 public: 03084 typedef TextVariable TypeName; 03085 typedef TextVariable OriginalType; 03086 typedef TextVariable const& PassType; 03087 typedef int IndexType; 03088 static inline int getTypeCode() { return TypeCode::TextVariable; } 03089 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 03090 typedef int PeakType; 03091 typedef double ScaleType; 03092 }; 03093 03094 template<> 03095 class TypeUtilityBase<const plonk::TextVariable> 03096 { 03097 public: 03098 typedef const TextVariable TypeName; 03099 typedef TextVariable OriginalType; 03100 typedef TextVariable const& PassType; 03101 typedef int IndexType; 03102 static inline int getTypeCode() { return TypeCode::TextVariable; } 03103 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 03104 typedef int PeakType; 03105 typedef double ScaleType; 03106 }; 03107 03108 template<> 03109 class TypeUtilityBase<TextArrayVariable> 03110 { 03111 public: 03112 typedef TextArrayVariable TypeName; 03113 typedef TextArrayVariable OriginalType; 03114 typedef TextArrayVariable const& PassType; 03115 typedef int IndexType; 03116 static inline int getTypeCode() { return TypeCode::TextArrayVariable; } 03117 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 03118 typedef int PeakType; 03119 typedef double ScaleType; 03120 }; 03121 03122 template<> 03123 class TypeUtilityBase<const TextArrayVariable> 03124 { 03125 public: 03126 typedef const TextArrayVariable TypeName; 03127 typedef TextArrayVariable OriginalType; 03128 typedef TextArrayVariable const& PassType; 03129 typedef int IndexType; 03130 static inline int getTypeCode() { return TypeCode::TextArrayVariable; } 03131 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 03132 typedef int PeakType; 03133 typedef double ScaleType; 03134 }; 03135 03136 template<> 03137 class TypeUtilityBase<FloatChannelVariable> 03138 { 03139 public: 03140 typedef FloatChannelVariable TypeName; 03141 typedef FloatChannelVariable OriginalType; 03142 typedef FloatChannelVariable const& PassType; 03143 typedef float IndexType; 03144 static inline int getTypeCode() { return TypeCode::FloatChannelVariable; } 03145 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 03146 typedef int PeakType; 03147 typedef double ScaleType; 03148 }; 03149 03150 template<> 03151 class TypeUtilityBase<const FloatChannelVariable> 03152 { 03153 public: 03154 typedef const FloatChannelVariable TypeName; 03155 typedef FloatChannelVariable OriginalType; 03156 typedef FloatChannelVariable const& PassType; 03157 typedef float IndexType; 03158 static inline int getTypeCode() { return TypeCode::FloatChannelVariable; } 03159 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 03160 typedef int PeakType; 03161 typedef double ScaleType; 03162 }; 03163 03164 template<> 03165 class TypeUtilityBase<DoubleChannelVariable> 03166 { 03167 public: 03168 typedef DoubleChannelVariable TypeName; 03169 typedef DoubleChannelVariable OriginalType; 03170 typedef DoubleChannelVariable const& PassType; 03171 typedef double IndexType; 03172 static inline int getTypeCode() { return TypeCode::DoubleChannelVariable; } 03173 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 03174 typedef int PeakType; 03175 typedef double ScaleType; 03176 }; 03177 03178 template<> 03179 class TypeUtilityBase<const DoubleChannelVariable> 03180 { 03181 public: 03182 typedef const DoubleChannelVariable TypeName; 03183 typedef DoubleChannelVariable OriginalType; 03184 typedef DoubleChannelVariable const& PassType; 03185 typedef double IndexType; 03186 static inline int getTypeCode() { return TypeCode::DoubleChannelVariable; } 03187 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 03188 typedef int PeakType; 03189 typedef double ScaleType; 03190 }; 03191 03192 template<> 03193 class TypeUtilityBase<IntChannelVariable> 03194 { 03195 public: 03196 typedef IntChannelVariable TypeName; 03197 typedef IntChannelVariable OriginalType; 03198 typedef IntChannelVariable const& PassType; 03199 typedef float IndexType; 03200 static inline int getTypeCode() { return TypeCode::IntChannelVariable; } 03201 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 03202 typedef int PeakType; 03203 typedef double ScaleType; 03204 }; 03205 03206 template<> 03207 class TypeUtilityBase<const IntChannelVariable> 03208 { 03209 public: 03210 typedef const IntChannelVariable TypeName; 03211 typedef IntChannelVariable OriginalType; 03212 typedef IntChannelVariable const& PassType; 03213 typedef float IndexType; 03214 static inline int getTypeCode() { return TypeCode::IntChannelVariable; } 03215 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 03216 typedef int PeakType; 03217 typedef double ScaleType; 03218 }; 03219 03220 template<> 03221 class TypeUtilityBase<ShortChannelVariable> 03222 { 03223 public: 03224 typedef ShortChannelVariable TypeName; 03225 typedef ShortChannelVariable OriginalType; 03226 typedef ShortChannelVariable const& PassType; 03227 typedef float IndexType; 03228 static inline int getTypeCode() { return TypeCode::ShortChannelVariable; } 03229 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 03230 typedef int PeakType; 03231 typedef double ScaleType; 03232 }; 03233 03234 template<> 03235 class TypeUtilityBase<const ShortChannelVariable> 03236 { 03237 public: 03238 typedef const ShortChannelVariable TypeName; 03239 typedef ShortChannelVariable OriginalType; 03240 typedef ShortChannelVariable const& PassType; 03241 typedef float IndexType; 03242 static inline int getTypeCode() { return TypeCode::ShortChannelVariable; } 03243 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 03244 typedef int PeakType; 03245 typedef double ScaleType; 03246 }; 03247 03248 template<> 03249 class TypeUtilityBase<Int24ChannelVariable> 03250 { 03251 public: 03252 typedef Int24ChannelVariable TypeName; 03253 typedef Int24ChannelVariable OriginalType; 03254 typedef Int24ChannelVariable const& PassType; 03255 typedef float IndexType; 03256 static inline int getTypeCode() { return TypeCode::Int24ChannelVariable; } 03257 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 03258 typedef int PeakType; 03259 typedef double ScaleType; 03260 }; 03261 03262 template<> 03263 class TypeUtilityBase<const Int24ChannelVariable> 03264 { 03265 public: 03266 typedef const Int24ChannelVariable TypeName; 03267 typedef Int24ChannelVariable OriginalType; 03268 typedef Int24ChannelVariable const& PassType; 03269 typedef float IndexType; 03270 static inline int getTypeCode() { return TypeCode::Int24ChannelVariable; } 03271 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 03272 typedef int PeakType; 03273 typedef double ScaleType; 03274 }; 03275 03276 template<> 03277 class TypeUtilityBase<LongChannelVariable> 03278 { 03279 public: 03280 typedef LongChannelVariable TypeName; 03281 typedef LongChannelVariable OriginalType; 03282 typedef LongChannelVariable const& PassType; 03283 typedef float IndexType; 03284 static inline int getTypeCode() { return TypeCode::LongChannelVariable; } 03285 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 03286 typedef int PeakType; 03287 typedef double ScaleType; 03288 }; 03289 03290 template<> 03291 class TypeUtilityBase<const LongChannelVariable> 03292 { 03293 public: 03294 typedef const LongChannelVariable TypeName; 03295 typedef LongChannelVariable OriginalType; 03296 typedef LongChannelVariable const& PassType; 03297 typedef float IndexType; 03298 static inline int getTypeCode() { return TypeCode::LongChannelVariable; } 03299 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 03300 typedef int PeakType; 03301 typedef double ScaleType; 03302 }; 03303 03304 template<> 03305 class TypeUtilityBase<FloatUnitVariable> 03306 { 03307 public: 03308 typedef FloatUnitVariable TypeName; 03309 typedef FloatUnitVariable OriginalType; 03310 typedef FloatUnitVariable const& PassType; 03311 typedef float IndexType; 03312 static inline int getTypeCode() { return TypeCode::FloatUnitVariable; } 03313 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 03314 typedef int PeakType; 03315 typedef double ScaleType; 03316 }; 03317 03318 template<> 03319 class TypeUtilityBase<const FloatUnitVariable> 03320 { 03321 public: 03322 typedef const FloatUnitVariable TypeName; 03323 typedef FloatUnitVariable OriginalType; 03324 typedef FloatUnitVariable const& PassType; 03325 typedef float IndexType; 03326 static inline int getTypeCode() { return TypeCode::FloatUnitVariable; } 03327 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 03328 typedef int PeakType; 03329 typedef double ScaleType; 03330 }; 03331 03332 template<> 03333 class TypeUtilityBase<DoubleUnitVariable> 03334 { 03335 public: 03336 typedef DoubleUnitVariable TypeName; 03337 typedef DoubleUnitVariable OriginalType; 03338 typedef DoubleUnitVariable const& PassType; 03339 typedef double IndexType; 03340 static inline int getTypeCode() { return TypeCode::DoubleUnitVariable; } 03341 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 03342 typedef int PeakType; 03343 typedef double ScaleType; 03344 }; 03345 03346 template<> 03347 class TypeUtilityBase<const DoubleUnitVariable> 03348 { 03349 public: 03350 typedef const DoubleUnitVariable TypeName; 03351 typedef DoubleUnitVariable OriginalType; 03352 typedef DoubleUnitVariable const& PassType; 03353 typedef double IndexType; 03354 static inline int getTypeCode() { return TypeCode::DoubleUnitVariable; } 03355 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 03356 typedef int PeakType; 03357 typedef double ScaleType; 03358 }; 03359 03360 template<> 03361 class TypeUtilityBase<IntUnitVariable> 03362 { 03363 public: 03364 typedef IntUnitVariable TypeName; 03365 typedef IntUnitVariable OriginalType; 03366 typedef IntUnitVariable const& PassType; 03367 typedef float IndexType; 03368 static inline int getTypeCode() { return TypeCode::IntUnitVariable; } 03369 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 03370 typedef int PeakType; 03371 typedef double ScaleType; 03372 }; 03373 03374 template<> 03375 class TypeUtilityBase<const IntUnitVariable> 03376 { 03377 public: 03378 typedef const IntUnitVariable TypeName; 03379 typedef IntUnitVariable OriginalType; 03380 typedef IntUnitVariable const& PassType; 03381 typedef float IndexType; 03382 static inline int getTypeCode() { return TypeCode::IntUnitVariable; } 03383 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 03384 typedef int PeakType; 03385 typedef double ScaleType; 03386 }; 03387 03388 template<> 03389 class TypeUtilityBase<ShortUnitVariable> 03390 { 03391 public: 03392 typedef ShortUnitVariable TypeName; 03393 typedef ShortUnitVariable OriginalType; 03394 typedef ShortUnitVariable const& PassType; 03395 typedef float IndexType; 03396 static inline int getTypeCode() { return TypeCode::ShortUnitVariable; } 03397 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 03398 typedef int PeakType; 03399 typedef double ScaleType; 03400 }; 03401 03402 template<> 03403 class TypeUtilityBase<const ShortUnitVariable> 03404 { 03405 public: 03406 typedef const ShortUnitVariable TypeName; 03407 typedef ShortUnitVariable OriginalType; 03408 typedef ShortUnitVariable const& PassType; 03409 typedef float IndexType; 03410 static inline int getTypeCode() { return TypeCode::ShortUnitVariable; } 03411 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 03412 typedef int PeakType; 03413 typedef double ScaleType; 03414 }; 03415 03416 template<> 03417 class TypeUtilityBase<Int24UnitVariable> 03418 { 03419 public: 03420 typedef Int24UnitVariable TypeName; 03421 typedef Int24UnitVariable OriginalType; 03422 typedef Int24UnitVariable const& PassType; 03423 typedef float IndexType; 03424 static inline int getTypeCode() { return TypeCode::Int24UnitVariable; } 03425 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 03426 typedef int PeakType; 03427 typedef double ScaleType; 03428 }; 03429 03430 template<> 03431 class TypeUtilityBase<const Int24UnitVariable> 03432 { 03433 public: 03434 typedef const Int24UnitVariable TypeName; 03435 typedef Int24UnitVariable OriginalType; 03436 typedef Int24UnitVariable const& PassType; 03437 typedef float IndexType; 03438 static inline int getTypeCode() { return TypeCode::Int24UnitVariable; } 03439 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 03440 typedef int PeakType; 03441 typedef double ScaleType; 03442 }; 03443 03444 template<> 03445 class TypeUtilityBase<LongUnitVariable> 03446 { 03447 public: 03448 typedef LongUnitVariable TypeName; 03449 typedef LongUnitVariable OriginalType; 03450 typedef LongUnitVariable const& PassType; 03451 typedef float IndexType; 03452 static inline int getTypeCode() { return TypeCode::LongUnitVariable; } 03453 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 03454 typedef int PeakType; 03455 typedef double ScaleType; 03456 }; 03457 03458 template<> 03459 class TypeUtilityBase<const LongUnitVariable> 03460 { 03461 public: 03462 typedef const LongUnitVariable TypeName; 03463 typedef LongUnitVariable OriginalType; 03464 typedef LongUnitVariable const& PassType; 03465 typedef float IndexType; 03466 static inline int getTypeCode() { return TypeCode::LongUnitVariable; } 03467 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 03468 typedef int PeakType; 03469 typedef double ScaleType; 03470 }; 03471 03472 template<> 03473 class TypeUtilityBase<FloatBusVariable> 03474 { 03475 public: 03476 typedef FloatBusVariable TypeName; 03477 typedef FloatBusVariable OriginalType; 03478 typedef FloatBusVariable const& PassType; 03479 typedef float IndexType; 03480 static inline int getTypeCode() { return TypeCode::FloatBusVariable; } 03481 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 03482 typedef int PeakType; 03483 typedef double ScaleType; 03484 }; 03485 03486 template<> 03487 class TypeUtilityBase<const FloatBusVariable> 03488 { 03489 public: 03490 typedef const FloatBusVariable TypeName; 03491 typedef FloatBusVariable OriginalType; 03492 typedef FloatBusVariable const& PassType; 03493 typedef float IndexType; 03494 static inline int getTypeCode() { return TypeCode::FloatBusVariable; } 03495 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 03496 typedef int PeakType; 03497 typedef double ScaleType; 03498 }; 03499 03500 template<> 03501 class TypeUtilityBase<DoubleBusVariable> 03502 { 03503 public: 03504 typedef DoubleBusVariable TypeName; 03505 typedef DoubleBusVariable OriginalType; 03506 typedef DoubleBusVariable const& PassType; 03507 typedef double IndexType; 03508 static inline int getTypeCode() { return TypeCode::DoubleBusVariable; } 03509 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 03510 typedef int PeakType; 03511 typedef double ScaleType; 03512 }; 03513 03514 template<> 03515 class TypeUtilityBase<const DoubleBusVariable> 03516 { 03517 public: 03518 typedef const DoubleBusVariable TypeName; 03519 typedef DoubleBusVariable OriginalType; 03520 typedef DoubleBusVariable const& PassType; 03521 typedef double IndexType; 03522 static inline int getTypeCode() { return TypeCode::DoubleBusVariable; } 03523 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 03524 typedef int PeakType; 03525 typedef double ScaleType; 03526 }; 03527 03528 template<> 03529 class TypeUtilityBase<IntBusVariable> 03530 { 03531 public: 03532 typedef IntBusVariable TypeName; 03533 typedef IntBusVariable OriginalType; 03534 typedef IntBusVariable const& PassType; 03535 typedef float IndexType; 03536 static inline int getTypeCode() { return TypeCode::IntBusVariable; } 03537 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 03538 typedef int PeakType; 03539 typedef double ScaleType; 03540 }; 03541 03542 template<> 03543 class TypeUtilityBase<const IntBusVariable> 03544 { 03545 public: 03546 typedef const IntBusVariable TypeName; 03547 typedef IntBusVariable OriginalType; 03548 typedef IntBusVariable const& PassType; 03549 typedef float IndexType; 03550 static inline int getTypeCode() { return TypeCode::IntBusVariable; } 03551 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 03552 typedef int PeakType; 03553 typedef double ScaleType; 03554 }; 03555 03556 template<> 03557 class TypeUtilityBase<ShortBusVariable> 03558 { 03559 public: 03560 typedef ShortBusVariable TypeName; 03561 typedef ShortBusVariable OriginalType; 03562 typedef ShortBusVariable const& PassType; 03563 typedef float IndexType; 03564 static inline int getTypeCode() { return TypeCode::ShortBusVariable; } 03565 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 03566 typedef int PeakType; 03567 typedef double ScaleType; 03568 }; 03569 03570 template<> 03571 class TypeUtilityBase<const ShortBusVariable> 03572 { 03573 public: 03574 typedef const ShortBusVariable TypeName; 03575 typedef ShortBusVariable OriginalType; 03576 typedef ShortBusVariable const& PassType; 03577 typedef float IndexType; 03578 static inline int getTypeCode() { return TypeCode::ShortBusVariable; } 03579 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 03580 typedef int PeakType; 03581 typedef double ScaleType; 03582 }; 03583 03584 template<> 03585 class TypeUtilityBase<Int24BusVariable> 03586 { 03587 public: 03588 typedef Int24BusVariable TypeName; 03589 typedef Int24BusVariable OriginalType; 03590 typedef Int24BusVariable const& PassType; 03591 typedef float IndexType; 03592 static inline int getTypeCode() { return TypeCode::Int24BusVariable; } 03593 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 03594 typedef int PeakType; 03595 typedef double ScaleType; 03596 }; 03597 03598 template<> 03599 class TypeUtilityBase<const Int24BusVariable> 03600 { 03601 public: 03602 typedef const Int24BusVariable TypeName; 03603 typedef Int24BusVariable OriginalType; 03604 typedef Int24BusVariable const& PassType; 03605 typedef float IndexType; 03606 static inline int getTypeCode() { return TypeCode::Int24BusVariable; } 03607 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 03608 typedef int PeakType; 03609 typedef double ScaleType; 03610 }; 03611 03612 template<> 03613 class TypeUtilityBase<LongBusVariable> 03614 { 03615 public: 03616 typedef LongBusVariable TypeName; 03617 typedef LongBusVariable OriginalType; 03618 typedef LongBusVariable const& PassType; 03619 typedef float IndexType; 03620 static inline int getTypeCode() { return TypeCode::LongBusVariable; } 03621 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 03622 typedef int PeakType; 03623 typedef double ScaleType; 03624 }; 03625 03626 template<> 03627 class TypeUtilityBase<const LongBusVariable> 03628 { 03629 public: 03630 typedef const LongBusVariable TypeName; 03631 typedef LongBusVariable OriginalType; 03632 typedef LongBusVariable const& PassType; 03633 typedef float IndexType; 03634 static inline int getTypeCode() { return TypeCode::LongBusVariable; } 03635 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 03636 typedef int PeakType; 03637 typedef double ScaleType; 03638 }; 03639 03640 template<> 03641 class TypeUtilityBase<FloatUnitsVariable> 03642 { 03643 public: 03644 typedef FloatUnitsVariable TypeName; 03645 typedef FloatUnitsVariable OriginalType; 03646 typedef FloatUnitsVariable const& PassType; 03647 typedef float IndexType; 03648 static inline int getTypeCode() { return TypeCode::FloatUnitsVariable; } 03649 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 03650 typedef int PeakType; 03651 typedef double ScaleType; 03652 }; 03653 03654 template<> 03655 class TypeUtilityBase<const FloatUnitsVariable> 03656 { 03657 public: 03658 typedef const FloatUnitsVariable TypeName; 03659 typedef FloatUnitsVariable OriginalType; 03660 typedef FloatUnitsVariable const& PassType; 03661 typedef float IndexType; 03662 static inline int getTypeCode() { return TypeCode::FloatUnitsVariable; } 03663 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 03664 typedef int PeakType; 03665 typedef double ScaleType; 03666 }; 03667 03668 template<> 03669 class TypeUtilityBase<DoubleUnitsVariable> 03670 { 03671 public: 03672 typedef DoubleUnitsVariable TypeName; 03673 typedef DoubleUnitsVariable OriginalType; 03674 typedef DoubleUnitsVariable const& PassType; 03675 typedef double IndexType; 03676 static inline int getTypeCode() { return TypeCode::DoubleUnitsVariable; } 03677 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 03678 typedef int PeakType; 03679 typedef double ScaleType; 03680 }; 03681 03682 template<> 03683 class TypeUtilityBase<const DoubleUnitsVariable> 03684 { 03685 public: 03686 typedef const DoubleUnitsVariable TypeName; 03687 typedef DoubleUnitsVariable OriginalType; 03688 typedef DoubleUnitsVariable const& PassType; 03689 typedef double IndexType; 03690 static inline int getTypeCode() { return TypeCode::DoubleUnitsVariable; } 03691 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 03692 typedef int PeakType; 03693 typedef double ScaleType; 03694 }; 03695 03696 template<> 03697 class TypeUtilityBase<IntUnitsVariable> 03698 { 03699 public: 03700 typedef IntUnitsVariable TypeName; 03701 typedef IntUnitsVariable OriginalType; 03702 typedef IntUnitsVariable const& PassType; 03703 typedef float IndexType; 03704 static inline int getTypeCode() { return TypeCode::IntUnitsVariable; } 03705 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 03706 typedef int PeakType; 03707 typedef double ScaleType; 03708 }; 03709 03710 template<> 03711 class TypeUtilityBase<const IntUnitsVariable> 03712 { 03713 public: 03714 typedef const IntUnitsVariable TypeName; 03715 typedef IntUnitsVariable OriginalType; 03716 typedef IntUnitsVariable const& PassType; 03717 typedef float IndexType; 03718 static inline int getTypeCode() { return TypeCode::IntUnitsVariable; } 03719 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 03720 typedef int PeakType; 03721 typedef double ScaleType; 03722 }; 03723 03724 template<> 03725 class TypeUtilityBase<ShortUnitsVariable> 03726 { 03727 public: 03728 typedef ShortUnitsVariable TypeName; 03729 typedef ShortUnitsVariable OriginalType; 03730 typedef ShortUnitsVariable const& PassType; 03731 typedef float IndexType; 03732 static inline int getTypeCode() { return TypeCode::ShortUnitsVariable; } 03733 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 03734 typedef int PeakType; 03735 typedef double ScaleType; 03736 }; 03737 03738 template<> 03739 class TypeUtilityBase<const ShortUnitsVariable> 03740 { 03741 public: 03742 typedef const ShortUnitsVariable TypeName; 03743 typedef ShortUnitsVariable OriginalType; 03744 typedef ShortUnitsVariable const& PassType; 03745 typedef float IndexType; 03746 static inline int getTypeCode() { return TypeCode::ShortUnitsVariable; } 03747 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 03748 typedef int PeakType; 03749 typedef double ScaleType; 03750 }; 03751 03752 template<> 03753 class TypeUtilityBase<Int24UnitsVariable> 03754 { 03755 public: 03756 typedef Int24UnitsVariable TypeName; 03757 typedef Int24UnitsVariable OriginalType; 03758 typedef Int24UnitsVariable const& PassType; 03759 typedef float IndexType; 03760 static inline int getTypeCode() { return TypeCode::Int24UnitsVariable; } 03761 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 03762 typedef int PeakType; 03763 typedef double ScaleType; 03764 }; 03765 03766 template<> 03767 class TypeUtilityBase<const Int24UnitsVariable> 03768 { 03769 public: 03770 typedef const Int24UnitsVariable TypeName; 03771 typedef Int24UnitsVariable OriginalType; 03772 typedef Int24UnitsVariable const& PassType; 03773 typedef float IndexType; 03774 static inline int getTypeCode() { return TypeCode::Int24UnitsVariable; } 03775 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 03776 typedef int PeakType; 03777 typedef double ScaleType; 03778 }; 03779 03780 template<> 03781 class TypeUtilityBase<LongUnitsVariable> 03782 { 03783 public: 03784 typedef LongUnitsVariable TypeName; 03785 typedef LongUnitsVariable OriginalType; 03786 typedef LongUnitsVariable const& PassType; 03787 typedef float IndexType; 03788 static inline int getTypeCode() { return TypeCode::LongUnitsVariable; } 03789 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 03790 typedef int PeakType; 03791 typedef double ScaleType; 03792 }; 03793 03794 template<> 03795 class TypeUtilityBase<const LongUnitsVariable> 03796 { 03797 public: 03798 typedef const LongUnitsVariable TypeName; 03799 typedef LongUnitsVariable OriginalType; 03800 typedef LongUnitsVariable const& PassType; 03801 typedef float IndexType; 03802 static inline int getTypeCode() { return TypeCode::LongUnitsVariable; } 03803 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 03804 typedef int PeakType; 03805 typedef double ScaleType; 03806 }; 03807 03808 template<> 03809 class TypeUtilityBase<FloatBussesVariable> 03810 { 03811 public: 03812 typedef FloatBussesVariable TypeName; 03813 typedef FloatBussesVariable OriginalType; 03814 typedef FloatBussesVariable const& PassType; 03815 typedef float IndexType; 03816 static inline int getTypeCode() { return TypeCode::FloatBussesVariable; } 03817 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 03818 typedef int PeakType; 03819 typedef double ScaleType; 03820 }; 03821 03822 template<> 03823 class TypeUtilityBase<const FloatBussesVariable> 03824 { 03825 public: 03826 typedef const FloatBussesVariable TypeName; 03827 typedef FloatBussesVariable OriginalType; 03828 typedef FloatBussesVariable const& PassType; 03829 typedef float IndexType; 03830 static inline int getTypeCode() { return TypeCode::FloatBussesVariable; } 03831 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 03832 typedef int PeakType; 03833 typedef double ScaleType; 03834 }; 03835 03836 template<> 03837 class TypeUtilityBase<DoubleBussesVariable> 03838 { 03839 public: 03840 typedef DoubleBussesVariable TypeName; 03841 typedef DoubleBussesVariable OriginalType; 03842 typedef DoubleBussesVariable const& PassType; 03843 typedef double IndexType; 03844 static inline int getTypeCode() { return TypeCode::DoubleBussesVariable; } 03845 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 03846 typedef int PeakType; 03847 typedef double ScaleType; 03848 }; 03849 03850 template<> 03851 class TypeUtilityBase<const DoubleBussesVariable> 03852 { 03853 public: 03854 typedef const DoubleBussesVariable TypeName; 03855 typedef DoubleBussesVariable OriginalType; 03856 typedef DoubleBussesVariable const& PassType; 03857 typedef double IndexType; 03858 static inline int getTypeCode() { return TypeCode::DoubleBussesVariable; } 03859 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 03860 typedef int PeakType; 03861 typedef double ScaleType; 03862 }; 03863 03864 template<> 03865 class TypeUtilityBase<IntBussesVariable> 03866 { 03867 public: 03868 typedef IntBussesVariable TypeName; 03869 typedef IntBussesVariable OriginalType; 03870 typedef IntBussesVariable const& PassType; 03871 typedef float IndexType; 03872 static inline int getTypeCode() { return TypeCode::IntBussesVariable; } 03873 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 03874 typedef int PeakType; 03875 typedef double ScaleType; 03876 }; 03877 03878 template<> 03879 class TypeUtilityBase<const IntBussesVariable> 03880 { 03881 public: 03882 typedef const IntBussesVariable TypeName; 03883 typedef IntBussesVariable OriginalType; 03884 typedef IntBussesVariable const& PassType; 03885 typedef float IndexType; 03886 static inline int getTypeCode() { return TypeCode::IntBussesVariable; } 03887 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 03888 typedef int PeakType; 03889 typedef double ScaleType; 03890 }; 03891 03892 template<> 03893 class TypeUtilityBase<ShortBussesVariable> 03894 { 03895 public: 03896 typedef ShortBussesVariable TypeName; 03897 typedef ShortBussesVariable OriginalType; 03898 typedef ShortBussesVariable const& PassType; 03899 typedef float IndexType; 03900 static inline int getTypeCode() { return TypeCode::ShortBussesVariable; } 03901 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 03902 typedef int PeakType; 03903 typedef double ScaleType; 03904 }; 03905 03906 template<> 03907 class TypeUtilityBase<const ShortBussesVariable> 03908 { 03909 public: 03910 typedef const ShortBussesVariable TypeName; 03911 typedef ShortBussesVariable OriginalType; 03912 typedef ShortBussesVariable const& PassType; 03913 typedef float IndexType; 03914 static inline int getTypeCode() { return TypeCode::ShortBussesVariable; } 03915 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 03916 typedef int PeakType; 03917 typedef double ScaleType; 03918 }; 03919 03920 template<> 03921 class TypeUtilityBase<Int24BussesVariable> 03922 { 03923 public: 03924 typedef Int24BussesVariable TypeName; 03925 typedef Int24BussesVariable OriginalType; 03926 typedef Int24BussesVariable const& PassType; 03927 typedef float IndexType; 03928 static inline int getTypeCode() { return TypeCode::Int24BussesVariable; } 03929 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 03930 typedef int PeakType; 03931 typedef double ScaleType; 03932 }; 03933 03934 template<> 03935 class TypeUtilityBase<const Int24BussesVariable> 03936 { 03937 public: 03938 typedef const Int24BussesVariable TypeName; 03939 typedef Int24BussesVariable OriginalType; 03940 typedef Int24BussesVariable const& PassType; 03941 typedef float IndexType; 03942 static inline int getTypeCode() { return TypeCode::Int24BussesVariable; } 03943 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 03944 typedef int PeakType; 03945 typedef double ScaleType; 03946 }; 03947 03948 template<> 03949 class TypeUtilityBase<LongBussesVariable> 03950 { 03951 public: 03952 typedef LongBussesVariable TypeName; 03953 typedef LongBussesVariable OriginalType; 03954 typedef LongBussesVariable const& PassType; 03955 typedef float IndexType; 03956 static inline int getTypeCode() { return TypeCode::LongBussesVariable; } 03957 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 03958 typedef int PeakType; 03959 typedef double ScaleType; 03960 }; 03961 03962 template<> 03963 class TypeUtilityBase<const LongBussesVariable> 03964 { 03965 public: 03966 typedef const LongBussesVariable TypeName; 03967 typedef LongBussesVariable OriginalType; 03968 typedef LongBussesVariable const& PassType; 03969 typedef float IndexType; 03970 static inline int getTypeCode() { return TypeCode::LongBussesVariable; } 03971 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 03972 typedef int PeakType; 03973 typedef double ScaleType; 03974 }; 03975 03976 template<> 03977 class TypeUtilityBase<FloatBreakpointsVariable> 03978 { 03979 public: 03980 typedef FloatBreakpointsVariable TypeName; 03981 typedef FloatBreakpointsVariable OriginalType; 03982 typedef FloatBreakpointsVariable const& PassType; 03983 typedef float IndexType; 03984 static inline int getTypeCode() { return TypeCode::FloatBreakpointsVariable; } 03985 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 03986 typedef int PeakType; 03987 typedef double ScaleType; 03988 }; 03989 03990 template<> 03991 class TypeUtilityBase<const FloatBreakpointsVariable> 03992 { 03993 public: 03994 typedef const FloatBreakpointsVariable TypeName; 03995 typedef FloatBreakpointsVariable OriginalType; 03996 typedef FloatBreakpointsVariable const& PassType; 03997 typedef float IndexType; 03998 static inline int getTypeCode() { return TypeCode::FloatBreakpointsVariable; } 03999 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 04000 typedef int PeakType; 04001 typedef double ScaleType; 04002 }; 04003 04004 template<> 04005 class TypeUtilityBase<DoubleBreakpointsVariable> 04006 { 04007 public: 04008 typedef DoubleBreakpointsVariable TypeName; 04009 typedef DoubleBreakpointsVariable OriginalType; 04010 typedef DoubleBreakpointsVariable const& PassType; 04011 typedef double IndexType; 04012 static inline int getTypeCode() { return TypeCode::DoubleBreakpointsVariable; } 04013 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 04014 typedef int PeakType; 04015 typedef double ScaleType; 04016 }; 04017 04018 template<> 04019 class TypeUtilityBase<const DoubleBreakpointsVariable> 04020 { 04021 public: 04022 typedef const DoubleBreakpointsVariable TypeName; 04023 typedef DoubleBreakpointsVariable OriginalType; 04024 typedef DoubleBreakpointsVariable const& PassType; 04025 typedef double IndexType; 04026 static inline int getTypeCode() { return TypeCode::DoubleBreakpointsVariable; } 04027 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 04028 typedef int PeakType; 04029 typedef double ScaleType; 04030 }; 04031 04032 template<> 04033 class TypeUtilityBase<IntBreakpointsVariable> 04034 { 04035 public: 04036 typedef IntBreakpointsVariable TypeName; 04037 typedef IntBreakpointsVariable OriginalType; 04038 typedef IntBreakpointsVariable const& PassType; 04039 typedef float IndexType; 04040 static inline int getTypeCode() { return TypeCode::IntBreakpointsVariable; } 04041 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 04042 typedef int PeakType; 04043 typedef double ScaleType; 04044 }; 04045 04046 template<> 04047 class TypeUtilityBase<const IntBreakpointsVariable> 04048 { 04049 public: 04050 typedef const IntBreakpointsVariable TypeName; 04051 typedef IntBreakpointsVariable OriginalType; 04052 typedef IntBreakpointsVariable const& PassType; 04053 typedef float IndexType; 04054 static inline int getTypeCode() { return TypeCode::IntBreakpointsVariable; } 04055 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 04056 typedef int PeakType; 04057 typedef double ScaleType; 04058 }; 04059 04060 template<> 04061 class TypeUtilityBase<ShortBreakpointsVariable> 04062 { 04063 public: 04064 typedef ShortBreakpointsVariable TypeName; 04065 typedef ShortBreakpointsVariable OriginalType; 04066 typedef ShortBreakpointsVariable const& PassType; 04067 typedef float IndexType; 04068 static inline int getTypeCode() { return TypeCode::ShortBreakpointsVariable; } 04069 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 04070 typedef int PeakType; 04071 typedef double ScaleType; 04072 }; 04073 04074 template<> 04075 class TypeUtilityBase<const ShortBreakpointsVariable> 04076 { 04077 public: 04078 typedef const ShortBreakpointsVariable TypeName; 04079 typedef ShortBreakpointsVariable OriginalType; 04080 typedef ShortBreakpointsVariable const& PassType; 04081 typedef float IndexType; 04082 static inline int getTypeCode() { return TypeCode::ShortBreakpointsVariable; } 04083 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 04084 typedef int PeakType; 04085 typedef double ScaleType; 04086 }; 04087 04088 template<> 04089 class TypeUtilityBase<Int24BreakpointsVariable> 04090 { 04091 public: 04092 typedef Int24BreakpointsVariable TypeName; 04093 typedef Int24BreakpointsVariable OriginalType; 04094 typedef Int24BreakpointsVariable const& PassType; 04095 typedef float IndexType; 04096 static inline int getTypeCode() { return TypeCode::Int24BreakpointsVariable; } 04097 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 04098 typedef int PeakType; 04099 typedef double ScaleType; 04100 }; 04101 04102 template<> 04103 class TypeUtilityBase<const Int24BreakpointsVariable> 04104 { 04105 public: 04106 typedef const Int24BreakpointsVariable TypeName; 04107 typedef Int24BreakpointsVariable OriginalType; 04108 typedef Int24BreakpointsVariable const& PassType; 04109 typedef float IndexType; 04110 static inline int getTypeCode() { return TypeCode::Int24BreakpointsVariable; } 04111 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 04112 typedef int PeakType; 04113 typedef double ScaleType; 04114 }; 04115 04116 template<> 04117 class TypeUtilityBase<LongBreakpointsVariable> 04118 { 04119 public: 04120 typedef LongBreakpointsVariable TypeName; 04121 typedef LongBreakpointsVariable OriginalType; 04122 typedef LongBreakpointsVariable const& PassType; 04123 typedef float IndexType; 04124 static inline int getTypeCode() { return TypeCode::LongBreakpointsVariable; } 04125 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 04126 typedef int PeakType; 04127 typedef double ScaleType; 04128 }; 04129 04130 template<> 04131 class TypeUtilityBase<const LongBreakpointsVariable> 04132 { 04133 public: 04134 typedef const LongBreakpointsVariable TypeName; 04135 typedef LongBreakpointsVariable OriginalType; 04136 typedef LongBreakpointsVariable const& PassType; 04137 typedef float IndexType; 04138 static inline int getTypeCode() { return TypeCode::LongBreakpointsVariable; } 04139 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 04140 typedef int PeakType; 04141 typedef double ScaleType; 04142 }; 04143 04144 template<> 04145 class TypeUtilityBase<FloatWavetableVariable> 04146 { 04147 public: 04148 typedef FloatWavetableVariable TypeName; 04149 typedef FloatWavetableVariable OriginalType; 04150 typedef FloatWavetableVariable const& PassType; 04151 typedef float IndexType; 04152 static inline int getTypeCode() { return TypeCode::FloatWavetableVariable; } 04153 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 04154 typedef int PeakType; 04155 typedef double ScaleType; 04156 }; 04157 04158 template<> 04159 class TypeUtilityBase<const FloatWavetableVariable> 04160 { 04161 public: 04162 typedef const FloatWavetableVariable TypeName; 04163 typedef FloatWavetableVariable OriginalType; 04164 typedef FloatWavetableVariable const& PassType; 04165 typedef float IndexType; 04166 static inline int getTypeCode() { return TypeCode::FloatWavetableVariable; } 04167 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 04168 typedef int PeakType; 04169 typedef double ScaleType; 04170 }; 04171 04172 template<> 04173 class TypeUtilityBase<DoubleWavetableVariable> 04174 { 04175 public: 04176 typedef DoubleWavetableVariable TypeName; 04177 typedef DoubleWavetableVariable OriginalType; 04178 typedef DoubleWavetableVariable const& PassType; 04179 typedef double IndexType; 04180 static inline int getTypeCode() { return TypeCode::DoubleWavetableVariable; } 04181 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 04182 typedef int PeakType; 04183 typedef double ScaleType; 04184 }; 04185 04186 template<> 04187 class TypeUtilityBase<const DoubleWavetableVariable> 04188 { 04189 public: 04190 typedef const DoubleWavetableVariable TypeName; 04191 typedef DoubleWavetableVariable OriginalType; 04192 typedef DoubleWavetableVariable const& PassType; 04193 typedef double IndexType; 04194 static inline int getTypeCode() { return TypeCode::DoubleWavetableVariable; } 04195 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 04196 typedef int PeakType; 04197 typedef double ScaleType; 04198 }; 04199 04200 template<> 04201 class TypeUtilityBase<IntWavetableVariable> 04202 { 04203 public: 04204 typedef IntWavetableVariable TypeName; 04205 typedef IntWavetableVariable OriginalType; 04206 typedef IntWavetableVariable const& PassType; 04207 typedef float IndexType; 04208 static inline int getTypeCode() { return TypeCode::IntWavetableVariable; } 04209 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 04210 typedef int PeakType; 04211 typedef double ScaleType; 04212 }; 04213 04214 template<> 04215 class TypeUtilityBase<const IntWavetableVariable> 04216 { 04217 public: 04218 typedef const IntWavetableVariable TypeName; 04219 typedef IntWavetableVariable OriginalType; 04220 typedef IntWavetableVariable const& PassType; 04221 typedef float IndexType; 04222 static inline int getTypeCode() { return TypeCode::IntWavetableVariable; } 04223 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 04224 typedef int PeakType; 04225 typedef double ScaleType; 04226 }; 04227 04228 template<> 04229 class TypeUtilityBase<ShortWavetableVariable> 04230 { 04231 public: 04232 typedef ShortWavetableVariable TypeName; 04233 typedef ShortWavetableVariable OriginalType; 04234 typedef ShortWavetableVariable const& PassType; 04235 typedef float IndexType; 04236 static inline int getTypeCode() { return TypeCode::ShortWavetableVariable; } 04237 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 04238 typedef int PeakType; 04239 typedef double ScaleType; 04240 }; 04241 04242 template<> 04243 class TypeUtilityBase<const ShortWavetableVariable> 04244 { 04245 public: 04246 typedef const ShortWavetableVariable TypeName; 04247 typedef ShortWavetableVariable OriginalType; 04248 typedef ShortWavetableVariable const& PassType; 04249 typedef float IndexType; 04250 static inline int getTypeCode() { return TypeCode::ShortWavetableVariable; } 04251 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 04252 typedef int PeakType; 04253 typedef double ScaleType; 04254 }; 04255 04256 template<> 04257 class TypeUtilityBase<Int24WavetableVariable> 04258 { 04259 public: 04260 typedef Int24WavetableVariable TypeName; 04261 typedef Int24WavetableVariable OriginalType; 04262 typedef Int24WavetableVariable const& PassType; 04263 typedef float IndexType; 04264 static inline int getTypeCode() { return TypeCode::Int24WavetableVariable; } 04265 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 04266 typedef int PeakType; 04267 typedef double ScaleType; 04268 }; 04269 04270 template<> 04271 class TypeUtilityBase<const Int24WavetableVariable> 04272 { 04273 public: 04274 typedef const Int24WavetableVariable TypeName; 04275 typedef Int24WavetableVariable OriginalType; 04276 typedef Int24WavetableVariable const& PassType; 04277 typedef float IndexType; 04278 static inline int getTypeCode() { return TypeCode::Int24WavetableVariable; } 04279 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 04280 typedef int PeakType; 04281 typedef double ScaleType; 04282 }; 04283 04284 template<> 04285 class TypeUtilityBase<LongWavetableVariable> 04286 { 04287 public: 04288 typedef LongWavetableVariable TypeName; 04289 typedef LongWavetableVariable OriginalType; 04290 typedef LongWavetableVariable const& PassType; 04291 typedef float IndexType; 04292 static inline int getTypeCode() { return TypeCode::LongWavetableVariable; } 04293 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 04294 typedef int PeakType; 04295 typedef double ScaleType; 04296 }; 04297 04298 template<> 04299 class TypeUtilityBase<const LongWavetableVariable> 04300 { 04301 public: 04302 typedef const LongWavetableVariable TypeName; 04303 typedef LongWavetableVariable OriginalType; 04304 typedef LongWavetableVariable const& PassType; 04305 typedef float IndexType; 04306 static inline int getTypeCode() { return TypeCode::LongWavetableVariable; } 04307 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 04308 typedef int PeakType; 04309 typedef double ScaleType; 04310 }; 04311 04312 template<> 04313 class TypeUtilityBase<FloatSignalVariable> 04314 { 04315 public: 04316 typedef FloatSignalVariable TypeName; 04317 typedef FloatSignalVariable OriginalType; 04318 typedef FloatSignalVariable const& PassType; 04319 typedef float IndexType; 04320 static inline int getTypeCode() { return TypeCode::FloatSignalVariable; } 04321 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 04322 typedef int PeakType; 04323 typedef double ScaleType; 04324 }; 04325 04326 template<> 04327 class TypeUtilityBase<const FloatSignalVariable> 04328 { 04329 public: 04330 typedef const FloatSignalVariable TypeName; 04331 typedef FloatSignalVariable OriginalType; 04332 typedef FloatSignalVariable const& PassType; 04333 typedef float IndexType; 04334 static inline int getTypeCode() { return TypeCode::FloatSignalVariable; } 04335 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 04336 typedef int PeakType; 04337 typedef double ScaleType; 04338 }; 04339 04340 template<> 04341 class TypeUtilityBase<DoubleSignalVariable> 04342 { 04343 public: 04344 typedef DoubleSignalVariable TypeName; 04345 typedef DoubleSignalVariable OriginalType; 04346 typedef DoubleSignalVariable const& PassType; 04347 typedef double IndexType; 04348 static inline int getTypeCode() { return TypeCode::DoubleSignalVariable; } 04349 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 04350 typedef int PeakType; 04351 typedef double ScaleType; 04352 }; 04353 04354 template<> 04355 class TypeUtilityBase<const DoubleSignalVariable> 04356 { 04357 public: 04358 typedef const DoubleSignalVariable TypeName; 04359 typedef DoubleSignalVariable OriginalType; 04360 typedef DoubleSignalVariable const& PassType; 04361 typedef double IndexType; 04362 static inline int getTypeCode() { return TypeCode::DoubleSignalVariable; } 04363 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 04364 typedef int PeakType; 04365 typedef double ScaleType; 04366 }; 04367 04368 template<> 04369 class TypeUtilityBase<IntSignalVariable> 04370 { 04371 public: 04372 typedef IntSignalVariable TypeName; 04373 typedef IntSignalVariable OriginalType; 04374 typedef IntSignalVariable const& PassType; 04375 typedef float IndexType; 04376 static inline int getTypeCode() { return TypeCode::IntSignalVariable; } 04377 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 04378 typedef int PeakType; 04379 typedef double ScaleType; 04380 }; 04381 04382 template<> 04383 class TypeUtilityBase<const IntSignalVariable> 04384 { 04385 public: 04386 typedef const IntSignalVariable TypeName; 04387 typedef IntSignalVariable OriginalType; 04388 typedef IntSignalVariable const& PassType; 04389 typedef float IndexType; 04390 static inline int getTypeCode() { return TypeCode::IntSignalVariable; } 04391 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 04392 typedef int PeakType; 04393 typedef double ScaleType; 04394 }; 04395 04396 template<> 04397 class TypeUtilityBase<ShortSignalVariable> 04398 { 04399 public: 04400 typedef ShortSignalVariable TypeName; 04401 typedef ShortSignalVariable OriginalType; 04402 typedef ShortSignalVariable const& PassType; 04403 typedef float IndexType; 04404 static inline int getTypeCode() { return TypeCode::ShortSignalVariable; } 04405 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 04406 typedef int PeakType; 04407 typedef double ScaleType; 04408 }; 04409 04410 template<> 04411 class TypeUtilityBase<const ShortSignalVariable> 04412 { 04413 public: 04414 typedef const ShortSignalVariable TypeName; 04415 typedef ShortSignalVariable OriginalType; 04416 typedef ShortSignalVariable const& PassType; 04417 typedef float IndexType; 04418 static inline int getTypeCode() { return TypeCode::ShortSignalVariable; } 04419 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 04420 typedef int PeakType; 04421 typedef double ScaleType; 04422 }; 04423 04424 template<> 04425 class TypeUtilityBase<Int24SignalVariable> 04426 { 04427 public: 04428 typedef Int24SignalVariable TypeName; 04429 typedef Int24SignalVariable OriginalType; 04430 typedef Int24SignalVariable const& PassType; 04431 typedef float IndexType; 04432 static inline int getTypeCode() { return TypeCode::Int24SignalVariable; } 04433 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 04434 typedef int PeakType; 04435 typedef double ScaleType; 04436 }; 04437 04438 template<> 04439 class TypeUtilityBase<const Int24SignalVariable> 04440 { 04441 public: 04442 typedef const Int24SignalVariable TypeName; 04443 typedef Int24SignalVariable OriginalType; 04444 typedef Int24SignalVariable const& PassType; 04445 typedef float IndexType; 04446 static inline int getTypeCode() { return TypeCode::Int24SignalVariable; } 04447 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 04448 typedef int PeakType; 04449 typedef double ScaleType; 04450 }; 04451 04452 template<> 04453 class TypeUtilityBase<LongSignalVariable> 04454 { 04455 public: 04456 typedef LongSignalVariable TypeName; 04457 typedef LongSignalVariable OriginalType; 04458 typedef LongSignalVariable const& PassType; 04459 typedef float IndexType; 04460 static inline int getTypeCode() { return TypeCode::LongSignalVariable; } 04461 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 04462 typedef int PeakType; 04463 typedef double ScaleType; 04464 }; 04465 04466 template<> 04467 class TypeUtilityBase<const LongSignalVariable> 04468 { 04469 public: 04470 typedef const LongSignalVariable TypeName; 04471 typedef LongSignalVariable OriginalType; 04472 typedef LongSignalVariable const& PassType; 04473 typedef float IndexType; 04474 static inline int getTypeCode() { return TypeCode::LongSignalVariable; } 04475 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 04476 typedef int PeakType; 04477 typedef double ScaleType; 04478 }; 04479 04480 template<> 04481 class TypeUtilityBase<AudioFileReader> 04482 { 04483 public: 04484 typedef AudioFileReader TypeName; 04485 typedef AudioFileReader OriginalType; 04486 typedef AudioFileReader const& PassType; 04487 typedef void IndexType; 04488 static inline int getTypeCode() { return TypeCode::AudioFileReader; } 04489 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 04490 typedef int PeakType; 04491 typedef double ScaleType; 04492 }; 04493 04494 template<> 04495 class TypeUtilityBase<const AudioFileReader> 04496 { 04497 public: 04498 typedef const AudioFileReader TypeName; 04499 typedef AudioFileReader OriginalType; 04500 typedef AudioFileReader const& PassType; 04501 typedef void IndexType; 04502 static inline int getTypeCode() { return TypeCode::AudioFileReader; } 04503 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 04504 typedef int PeakType; 04505 typedef double ScaleType; 04506 }; 04507 04508 template<> 04509 class TypeUtilityBase<FloatUnitQueue> 04510 { 04511 public: 04512 typedef FloatUnitQueue TypeName; 04513 typedef FloatUnitQueue OriginalType; 04514 typedef FloatUnitQueue const& PassType; 04515 typedef float IndexType; 04516 static inline int getTypeCode() { return TypeCode::FloatUnitQueue; } 04517 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 04518 typedef int PeakType; 04519 typedef double ScaleType; 04520 }; 04521 04522 template<> 04523 class TypeUtilityBase<const FloatUnitQueue> 04524 { 04525 public: 04526 typedef const FloatUnitQueue TypeName; 04527 typedef FloatUnitQueue OriginalType; 04528 typedef FloatUnitQueue const& PassType; 04529 typedef float IndexType; 04530 static inline int getTypeCode() { return TypeCode::FloatUnitQueue; } 04531 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 04532 typedef int PeakType; 04533 typedef double ScaleType; 04534 }; 04535 04536 template<> 04537 class TypeUtilityBase<DoubleUnitQueue> 04538 { 04539 public: 04540 typedef DoubleUnitQueue TypeName; 04541 typedef DoubleUnitQueue OriginalType; 04542 typedef DoubleUnitQueue const& PassType; 04543 typedef double IndexType; 04544 static inline int getTypeCode() { return TypeCode::DoubleUnitQueue; } 04545 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 04546 typedef int PeakType; 04547 typedef double ScaleType; 04548 }; 04549 04550 template<> 04551 class TypeUtilityBase<const DoubleUnitQueue> 04552 { 04553 public: 04554 typedef const DoubleUnitQueue TypeName; 04555 typedef DoubleUnitQueue OriginalType; 04556 typedef DoubleUnitQueue const& PassType; 04557 typedef double IndexType; 04558 static inline int getTypeCode() { return TypeCode::DoubleUnitQueue; } 04559 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 04560 typedef int PeakType; 04561 typedef double ScaleType; 04562 }; 04563 04564 template<> 04565 class TypeUtilityBase<IntUnitQueue> 04566 { 04567 public: 04568 typedef IntUnitQueue TypeName; 04569 typedef IntUnitQueue OriginalType; 04570 typedef IntUnitQueue const& PassType; 04571 typedef float IndexType; 04572 static inline int getTypeCode() { return TypeCode::IntUnitQueue; } 04573 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 04574 typedef int PeakType; 04575 typedef double ScaleType; 04576 }; 04577 04578 template<> 04579 class TypeUtilityBase<const IntUnitQueue> 04580 { 04581 public: 04582 typedef const IntUnitQueue TypeName; 04583 typedef IntUnitQueue OriginalType; 04584 typedef IntUnitQueue const& PassType; 04585 typedef float IndexType; 04586 static inline int getTypeCode() { return TypeCode::IntUnitQueue; } 04587 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 04588 typedef int PeakType; 04589 typedef double ScaleType; 04590 }; 04591 04592 template<> 04593 class TypeUtilityBase<ShortUnitQueue> 04594 { 04595 public: 04596 typedef ShortUnitQueue TypeName; 04597 typedef ShortUnitQueue OriginalType; 04598 typedef ShortUnitQueue const& PassType; 04599 typedef float IndexType; 04600 static inline int getTypeCode() { return TypeCode::ShortUnitQueue; } 04601 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 04602 typedef int PeakType; 04603 typedef double ScaleType; 04604 }; 04605 04606 template<> 04607 class TypeUtilityBase<const ShortUnitQueue> 04608 { 04609 public: 04610 typedef const ShortUnitQueue TypeName; 04611 typedef ShortUnitQueue OriginalType; 04612 typedef ShortUnitQueue const& PassType; 04613 typedef float IndexType; 04614 static inline int getTypeCode() { return TypeCode::ShortUnitQueue; } 04615 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 04616 typedef int PeakType; 04617 typedef double ScaleType; 04618 }; 04619 04620 template<> 04621 class TypeUtilityBase<Int24UnitQueue> 04622 { 04623 public: 04624 typedef Int24UnitQueue TypeName; 04625 typedef Int24UnitQueue OriginalType; 04626 typedef Int24UnitQueue const& PassType; 04627 typedef float IndexType; 04628 static inline int getTypeCode() { return TypeCode::Int24UnitQueue; } 04629 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 04630 typedef int PeakType; 04631 typedef double ScaleType; 04632 }; 04633 04634 template<> 04635 class TypeUtilityBase<const Int24UnitQueue> 04636 { 04637 public: 04638 typedef const Int24UnitQueue TypeName; 04639 typedef Int24UnitQueue OriginalType; 04640 typedef Int24UnitQueue const& PassType; 04641 typedef float IndexType; 04642 static inline int getTypeCode() { return TypeCode::Int24UnitQueue; } 04643 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 04644 typedef int PeakType; 04645 typedef double ScaleType; 04646 }; 04647 04648 template<> 04649 class TypeUtilityBase<LongUnitQueue> 04650 { 04651 public: 04652 typedef LongUnitQueue TypeName; 04653 typedef LongUnitQueue OriginalType; 04654 typedef LongUnitQueue const& PassType; 04655 typedef float IndexType; 04656 static inline int getTypeCode() { return TypeCode::LongUnitQueue; } 04657 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 04658 typedef int PeakType; 04659 typedef double ScaleType; 04660 }; 04661 04662 template<> 04663 class TypeUtilityBase<const LongUnitQueue> 04664 { 04665 public: 04666 typedef const LongUnitQueue TypeName; 04667 typedef LongUnitQueue OriginalType; 04668 typedef LongUnitQueue const& PassType; 04669 typedef float IndexType; 04670 static inline int getTypeCode() { return TypeCode::LongUnitQueue; } 04671 static inline const OriginalType& getNull() { return TypeUtilityBase<const OriginalType&>::getNull(); } 04672 typedef int PeakType; 04673 typedef double ScaleType; 04674 }; 04675 04676 //------------------------------------------------------------------------------ 04677 04680 template<class Type> 04681 class TypeUtility : public TypeUtilityBase<Type> 04682 { 04683 public: 04684 typedef typename TypeUtilityBase<Type>::TypeName TypeName; 04685 typedef typename TypeUtilityBase<Type>::PeakType PeakType; 04686 typedef typename TypeUtilityBase<Type>::ScaleType ScaleType; 04687 typedef typename TypeUtilityBase<Type>::OriginalType OriginalType; 04688 typedef typename TypeUtilityBase<Type>::PassType PassType; 04689 typedef typename TypeUtilityBase<Type>::IndexType IndexType; 04690 04691 static inline Text getTypeName() { return TypeCode::getName (TypeUtility<Type>::getTypeCode()); } 04692 static inline const PeakType& getTypePeak() { static PeakType v = (PeakType)TypeCode::getPeak (TypeUtility<Type>::getTypeCode()); return v; } 04693 static inline const ScaleType& getTypeScale() { static ScaleType v = Math<ScaleType>::get1() / ScaleType (getTypePeak()); return v; } 04694 static inline double getTypeEpsilon() { return TypeCode::getEpsilon (TypeUtility<Type>::getTypeCode()); } 04695 static inline Text getIndexTypeName() { return TypeCode::getName (TypeUtility<IndexType>::getTypeCode()); } 04696 04697 static inline bool isUnknown() throw() { return TypeCode::isUnknown (TypeUtility<Type>::getTypeCode()); } 04698 static inline bool isDynamic() throw() { return TypeCode::isDynamic (TypeUtility<Type>::getTypeCode()); } 04699 static inline bool isBuiltIn() throw() { return TypeCode::isBuiltIn (TypeUtility<Type>::getTypeCode()); } 04700 static inline bool isVariable() throw() { return TypeCode::isVariable (TypeUtility<Type>::getTypeCode()); } 04701 static inline bool isAtomicVariable() throw() { return TypeCode::isAtomicVariable (TypeUtility<Type>::getTypeCode()); } 04702 static inline bool isArray() throw() { return TypeCode::isArray (TypeUtility<Type>::getTypeCode()); } 04703 static inline bool isChannel() throw() { return TypeCode::isChannel (TypeUtility<Type>::getTypeCode()); } 04704 static inline bool isUnit() throw() { return TypeCode::isUnit (TypeUtility<Type>::getTypeCode()); } 04705 static inline bool isBus() throw() { return TypeCode::isBus (TypeUtility<Type>::getTypeCode()); } 04706 static inline bool isUnits() throw() { return TypeCode::isUnits (TypeUtility<Type>::getTypeCode()); } 04707 static inline bool isBusses() throw() { return TypeCode::isBusses (TypeUtility<Type>::getTypeCode()); } 04708 static inline bool isWavetable() throw() { return TypeCode::isWavetable (TypeUtility<Type>::getTypeCode()); } 04709 static inline bool isSignal() throw() { return TypeCode::isSignal (TypeUtility<Type>::getTypeCode()); } 04710 static inline bool isAudioFileReader() throw() { return TypeCode::isAudioFileReader (TypeUtility<Type>::getTypeCode()); } 04711 static inline bool isUnitQueue() throw() { return TypeCode::isUnitQueue (TypeUtility<Type>::getTypeCode()); } 04712 04713 static inline bool isFloatType() throw() { return TypeCode::isFloatType (TypeUtility<Type>::getTypeCode()); } 04714 static inline bool isDoubleType() throw() { return TypeCode::isDoubleType (TypeUtility<Type>::getTypeCode()); } 04715 static inline bool isIntType() throw() { return TypeCode::isIntType (TypeUtility<Type>::getTypeCode()); } 04716 static inline bool isInt24Type() throw() { return TypeCode::isInt24Type (TypeUtility<Type>::getTypeCode()); } 04717 static inline bool isLongType() throw() { return TypeCode::isLongType (TypeUtility<Type>::getTypeCode()); } 04718 static inline bool isShortType() throw() { return TypeCode::isShortType (TypeUtility<Type>::getTypeCode()); } 04719 static inline bool isCharType() throw() { return TypeCode::isCharType (TypeUtility<Type>::getTypeCode()); } 04720 static inline bool isBoolType() throw() { return TypeCode::isBoolType (TypeUtility<Type>::getTypeCode()); } 04721 04722 static inline bool isFloatOrDoubleType() throw() { return TypeCode::isFloatOrDoubleType (TypeUtility<Type>::getTypeCode()); } 04723 static inline bool isIntegralType() throw() { return TypeCode::isIntegralType (TypeUtility<Type>::getTypeCode()); } 04724 }; 04725 04726 04727 04728 04729 #endif // PLONK_TYPEUTILITY_H