00001 // ***************************************************************************** 00002 // ***************************************************************************** 00003 // oaValue.h 00004 // 00005 // This file contains the definitions for the following classes: 00006 // oaGateOrientationType 00007 // oaShapeAngleType 00008 // 00009 // oaValue 00010 // oaBooleanValue 00011 // oaIntValue 00012 // oaUInt8Value 00013 // oaFltValue 00014 // oaInt1DTblValue 00015 // oaFlt1DTblValue 00016 // oaInt2DTblValue 00017 // oaFlt2DTblValue 00018 // oaIntFltTblValue 00019 // oaFltIntFltTblValue 00020 // oaBoxArrayValue 00021 // oaValueArrayValue 00022 // oaDualIntValue 00023 // oaDualInt1DTblValue 00024 // oaAntennaRatioValue 00025 // oaAntennaRatioArrayValue 00026 // oaIntDualIntArrayTblValue 00027 // oaIntRangeValue 00028 // oaUInt8RangeValue 00029 // oaStringValue 00030 // oaIntRangeArrayValue 00031 // oaIntRangeArray1DTblValue 00032 // oaIntRangeArray2DTblValue 00033 // 00034 // oaBoxArray 00035 // oaDualInt 00036 // oaDualIntArray 00037 // oaIntRangeArray 00038 // 00039 // oaValueArray 00040 // 00041 // 00042 // 00043 // ***************************************************************************** 00044 // Except as specified in the OpenAccess terms of use of Cadence or Silicon 00045 // Integration Initiative, this material may not be copied, modified, 00046 // re-published, uploaded, executed, or distributed in any way, in any medium, 00047 // in whole or in part, without prior written permission from Cadence. 00048 // 00049 // Copyright 2002-2005 Cadence Design Systems, Inc. 00050 // All Rights Reserved. 00051 // 00052 // $Author: icftcm $ 00053 // $Revision: #1 $ 00054 // $Date: 2010/08/09 $ 00055 // $State: Exp $ 00056 // ***************************************************************************** 00057 // ***************************************************************************** 00058 00059 00060 00061 #if !defined(oaValue_P) 00062 #define oaValue_P 00063 00064 00065 00066 // ***************************************************************************** 00067 // Nested includes 00068 // ***************************************************************************** 00069 #include "oaBaseModTypes.h" 00070 #include "oaArray.h" 00071 #include "oaRange.h" 00072 #include "oaObject.h" 00073 #include "oaLookupTbl.h" 00074 00075 00076 00077 // ***************************************************************************** 00078 // Declare and define types in the OpenAccess namespace. 00079 // ***************************************************************************** 00080 BEGIN_OA_NAMESPACE 00081 00082 00083 00084 // ***************************************************************************** 00085 // Forward Class Declarations 00086 // ***************************************************************************** 00087 class oaBox; 00088 class oaIntRange; 00089 class oaUInt8Range; 00090 00091 template <class T> 00092 class oaChecker; 00093 00094 00095 // ***************************************************************************** 00096 // oaGateOrientationTypeEnum 00097 // ***************************************************************************** 00098 #define oavNumGateOrientatationTypes 3 00099 00100 enum oaGateOrientationTypeEnum { 00101 oacAnyGateOrientationType = 0, 00102 oacHorizontalGateOrientationType = 1, 00103 oacVerticalGateOrientationType = 2 00104 }; 00105 00106 00107 00108 // ***************************************************************************** 00109 // oaGateOrientationType 00110 // ***************************************************************************** 00111 class OA_BASE_DLL_API oaGateOrientationType { 00112 public: 00113 oaGateOrientationType(oaGateOrientationTypeEnum typeIn); 00114 oaGateOrientationType(const oaString &name); 00115 ~oaGateOrientationType(); 00116 00117 const oaString &getName() const; 00118 operator oaGateOrientationTypeEnum() const; 00119 00120 private: 00121 static const oaString *initNames(); 00122 00123 oaGateOrientationTypeEnum value; 00124 00125 static const oaString *names; 00126 }; 00127 00128 00129 00130 // ***************************************************************************** 00131 // oaShapeAngleTypeEnum 00132 // ***************************************************************************** 00133 #define oavNumShapeAngleTypes 3 00134 00135 enum oaShapeAngleTypeEnum { 00136 oacAllShapeAngleType = 0, 00137 oacDiagonalAndOrthogonalShapeAngleType = 1, 00138 oacOrthogonalOnlyShapeAngleType = 2 00139 }; 00140 00141 00142 00143 // ***************************************************************************** 00144 // oaShapeAngleType 00145 // ***************************************************************************** 00146 class OA_BASE_DLL_API oaShapeAngleType { 00147 public: 00148 oaShapeAngleType(oaShapeAngleTypeEnum typeIn); 00149 oaShapeAngleType(const oaString &name); 00150 ~oaShapeAngleType(); 00151 00152 const oaString &getName() const; 00153 operator oaShapeAngleTypeEnum() const; 00154 00155 private: 00156 static const oaString *initNames(); 00157 00158 oaShapeAngleTypeEnum value; 00159 00160 static const oaString *names; 00161 }; 00162 00163 00164 00165 // ***************************************************************************** 00166 // oaValue 00167 // ***************************************************************************** 00168 class OA_BASE_DLL_API oaValue : public oaObject { 00169 public: 00170 void destroy(); 00171 oaBoolean isOwned() const; 00172 oaObject *getOwner(oaBoolean local = false) const; 00173 oaBoolean isEqual(oaValue *value) const; 00174 oaValue *copy() const; 00175 oaValue *copyTo(oaObject *database) const; 00176 00177 enum {dtIndex = oacBaseValueDataType}; 00178 }; 00179 00180 00181 00182 // ***************************************************************************** 00183 // oaBooleanValue 00184 // ***************************************************************************** 00185 class OA_BASE_DLL_API oaBooleanValue : public oaValue { 00186 public: 00187 static oaBooleanValue *create(oaObject *database, 00188 oaBoolean value); 00189 00190 oaBoolean get() const; 00191 void set(oaBoolean value); 00192 }; 00193 00194 00195 00196 // ***************************************************************************** 00197 // oaIntValue 00198 // ***************************************************************************** 00199 class OA_BASE_DLL_API oaIntValue : public oaValue { 00200 public: 00201 static oaIntValue *create(oaObject *database, 00202 oaInt4 value); 00203 00204 oaInt4 get() const; 00205 void set(oaInt4 value); 00206 }; 00207 00208 00209 00210 // ***************************************************************************** 00211 // oaFltValue 00212 // ***************************************************************************** 00213 class OA_BASE_DLL_API oaFltValue : public oaValue { 00214 public: 00215 static oaFltValue *create(oaObject *database, 00216 oaFloat value); 00217 00218 oaFloat get() const; 00219 void set(oaFloat value); 00220 }; 00221 00222 00223 00224 // ***************************************************************************** 00225 // oaInt1DTblValue 00226 // ***************************************************************************** 00227 class OA_BASE_DLL_API oaInt1DTblValue : public oaValue { 00228 public: 00229 static oaInt1DTblValue *create(oaObject *database, 00230 const oa1DLookupTbl<oaInt4, oaInt4> &value); 00231 00232 void get(oa1DLookupTbl<oaInt4, oaInt4> &tbl) const; 00233 void set(const oa1DLookupTbl<oaInt4, oaInt4> &tbl); 00234 }; 00235 00236 00237 00238 // ***************************************************************************** 00239 // oaFlt1DTblValue 00240 // ***************************************************************************** 00241 class OA_BASE_DLL_API oaFlt1DTblValue : public oaValue { 00242 public: 00243 static oaFlt1DTblValue *create(oaObject *database, 00244 const oa1DLookupTbl<oaFloat, oaFloat> &value); 00245 00246 void get(oa1DLookupTbl<oaFloat, oaFloat> &tbl) const; 00247 void set(const oa1DLookupTbl<oaFloat, oaFloat> &tbl); 00248 }; 00249 00250 00251 00252 // ***************************************************************************** 00253 // oaInt2DTblValue 00254 // ***************************************************************************** 00255 class OA_BASE_DLL_API oaInt2DTblValue : public oaValue { 00256 public: 00257 static oaInt2DTblValue *create(oaObject *database, 00258 const oa2DLookupTbl<oaInt4, oaInt4, oaInt4> &value); 00259 00260 void get(oa2DLookupTbl<oaInt4, oaInt4, oaInt4> &tbl) const; 00261 void set(const oa2DLookupTbl<oaInt4, oaInt4, oaInt4> &tbl); 00262 }; 00263 00264 00265 00266 // ***************************************************************************** 00267 // oaFlt2DTblValue 00268 // ***************************************************************************** 00269 class OA_BASE_DLL_API oaFlt2DTblValue : public oaValue { 00270 public: 00271 static oaFlt2DTblValue *create(oaObject *database, 00272 const oa2DLookupTbl<oaFloat, oaFloat, oaFloat> &value); 00273 00274 void get(oa2DLookupTbl<oaFloat, oaFloat, oaFloat> &tbl) const; 00275 void set(const oa2DLookupTbl<oaFloat, oaFloat, oaFloat> &tbl); 00276 }; 00277 00278 00279 00280 // ***************************************************************************** 00281 // oaIntFltTblValue 00282 // ***************************************************************************** 00283 class OA_BASE_DLL_API oaIntFltTblValue : public oaValue { 00284 public: 00285 static oaIntFltTblValue *create(oaObject *database, 00286 const oa1DLookupTbl<oaInt4, oaFloat> &value); 00287 00288 void get(oa1DLookupTbl<oaInt4, oaFloat> &tbl) const; 00289 void set(const oa1DLookupTbl<oaInt4, oaFloat> &tbl); 00290 }; 00291 00292 00293 00294 // ***************************************************************************** 00295 // oaFltIntFltTblValue 00296 // ***************************************************************************** 00297 class OA_BASE_DLL_API oaFltIntFltTblValue : public oaValue { 00298 public: 00299 static oaFltIntFltTblValue *create(oaObject *database, 00300 const oa2DLookupTbl<oaFloat, oaInt4, oaFloat> &value); 00301 00302 void get(oa2DLookupTbl<oaFloat, oaInt4, oaFloat> &tbl) const; 00303 void set(const oa2DLookupTbl<oaFloat, oaInt4, oaFloat> &tbl); 00304 }; 00305 00306 00307 00308 // ***************************************************************************** 00309 // oaBoxArray 00310 // ***************************************************************************** 00311 class OA_BASE_DLL_API oaBoxArray : public oaArray<oaBox> { 00312 public: 00313 oaBoxArray(oaUInt4 sizeIn = 0); 00314 }; 00315 00316 00317 00318 // ***************************************************************************** 00319 // oaBoxArrayValue 00320 // ***************************************************************************** 00321 class OA_BASE_DLL_API oaBoxArrayValue : public oaValue { 00322 public: 00323 static oaBoxArrayValue *create(oaObject *database, 00324 const oaBoxArray &value); 00325 00326 void get(oaBoxArray &value) const; 00327 void set(const oaBoxArray &value); 00328 }; 00329 00330 00331 00332 // ***************************************************************************** 00333 // oaValueArray 00334 // ***************************************************************************** 00335 class OA_BASE_DLL_API oaValueArray : public oaArray<oaValue*> { 00336 public: 00337 oaValueArray(oaUInt4 sizeIn = 0); 00338 }; 00339 00340 00341 00342 // ***************************************************************************** 00343 // oaValueArrayValue 00344 // ***************************************************************************** 00345 class OA_BASE_DLL_API oaValueArrayValue : public oaValue { 00346 public: 00347 static oaValueArrayValue *create(oaObject *database, 00348 const oaValueArray &value); 00349 00350 void get(oaValueArray &value) const; 00351 void set(const oaValueArray &value); 00352 }; 00353 00354 00355 00356 // ***************************************************************************** 00357 // oaDualInt 00358 // ***************************************************************************** 00359 class OA_BASE_DLL_API oaDualInt { 00360 public: 00361 oaDualInt(oaInt4 firstValue = 0, 00362 oaInt4 secondValue = 0); 00363 00364 oaInt4 getFirst() const; 00365 oaInt4 getSecond() const; 00366 00367 void setFirst(oaInt4 value); 00368 void setSecond(oaInt4 value); 00369 00370 oaBoolean operator==(const oaDualInt &right); 00371 oaBoolean operator!=(const oaDualInt &right); 00372 oaBoolean operator==(const oaDualInt &right) const; 00373 oaBoolean operator!=(const oaDualInt &right) const; 00374 00375 private: 00376 oaInt4 first; 00377 oaInt4 second; 00378 00379 friend class oaChecker<oaDualInt>; 00380 }; 00381 00382 00383 00384 // ***************************************************************************** 00385 // oaDualIntArray 00386 // ***************************************************************************** 00387 class OA_BASE_DLL_API oaDualIntArray : public oaArray<oaDualInt> { 00388 public: 00389 oaDualIntArray(oaUInt4 sizeIn = 0); 00390 oaDualIntArray(const oaDualInt *arrayIn, 00391 oaUInt4 numElementsIn); 00392 }; 00393 00394 00395 00396 // ***************************************************************************** 00397 // oaIntDualIntArrayTblValue 00398 // ***************************************************************************** 00399 class OA_BASE_DLL_API oaIntDualIntArrayTblValue : public oaValue { 00400 public: 00401 static oaIntDualIntArrayTblValue *create(oaObject *database, 00402 const oa1DLookupTbl<oaInt4, oaDualIntArray> &value); 00403 00404 void get(oa1DLookupTbl<oaInt4, oaDualIntArray> &tbl) const; 00405 void set(const oa1DLookupTbl<oaInt4, oaDualIntArray> &tbl); 00406 }; 00407 00408 00409 00410 // ***************************************************************************** 00411 // oaDualIntValue 00412 // ***************************************************************************** 00413 class OA_BASE_DLL_API oaDualIntValue : public oaValue { 00414 public: 00415 static oaDualIntValue *create(oaObject *database, 00416 oaInt4 first, 00417 oaInt4 second); 00418 static oaDualIntValue *create(oaObject *database, 00419 const oaDualInt &value); 00420 00421 oaInt4 getFirst() const; 00422 oaInt4 getSecond() const; 00423 00424 void setFirst(oaInt4 value); 00425 void setSecond(oaInt4 value); 00426 }; 00427 00428 00429 00430 // ***************************************************************************** 00431 // oaDualInt1DTblValue 00432 // ***************************************************************************** 00433 class OA_BASE_DLL_API oaDualInt1DTblValue : public oaValue { 00434 public: 00435 static oaDualInt1DTblValue *create(oaObject *database, 00436 const oa1DLookupTbl<oaInt4, oaInt4> &first, 00437 const oa1DLookupTbl<oaInt4, oaInt4> &second); 00438 00439 void getFirst(oa1DLookupTbl<oaInt4, oaInt4> &value) const; 00440 void getSecond(oa1DLookupTbl<oaInt4, oaInt4> &value) const; 00441 00442 void setFirst(const oa1DLookupTbl<oaInt4, oaInt4> &value); 00443 void setSecond(const oa1DLookupTbl<oaInt4, oaInt4> &value); 00444 }; 00445 00446 00447 00448 // ***************************************************************************** 00449 // oaUInt8Value 00450 // ***************************************************************************** 00451 class OA_BASE_DLL_API oaUInt8Value : public oaValue { 00452 public: 00453 static oaUInt8Value *create(oaObject *database, 00454 oaUInt8 value); 00455 00456 oaUInt8 get() const; 00457 void set(oaUInt8 value); 00458 }; 00459 00460 00461 00462 // ***************************************************************************** 00463 // oaIntRangeValue 00464 // ***************************************************************************** 00465 class OA_BASE_DLL_API oaIntRangeValue : public oaValue { 00466 public: 00467 static oaIntRangeValue *create(oaObject *database, 00468 const oaIntRange &value); 00469 00470 void get(oaIntRange &value) const; 00471 void set(const oaIntRange &value); 00472 }; 00473 00474 00475 00476 // ***************************************************************************** 00477 // oaUInt8RangeValue 00478 // ***************************************************************************** 00479 class OA_BASE_DLL_API oaUInt8RangeValue : public oaValue { 00480 public: 00481 static oaUInt8RangeValue *create(oaObject *database, 00482 const oaUInt8Range &value); 00483 00484 void get(oaUInt8Range &value) const; 00485 void set(const oaUInt8Range &value); 00486 }; 00487 00488 00489 00490 // ***************************************************************************** 00491 // oaStringValue 00492 // ***************************************************************************** 00493 class OA_BASE_DLL_API oaStringValue : public oaValue { 00494 public: 00495 static oaStringValue *create(oaObject *database, 00496 const oaString &value); 00497 00498 void get(oaString &value) const; 00499 void set(const oaString &value); 00500 }; 00501 00502 00503 00504 // ***************************************************************************** 00505 // oaIntRangeArray 00506 // ***************************************************************************** 00507 class OA_BASE_DLL_API oaIntRangeArray : public oaArray<oaIntRange> { 00508 public: 00509 oaIntRangeArray(oaUInt4 sizeIn = 0); 00510 oaIntRangeArray(const oaIntRange *arrayIn, 00511 oaUInt4 numElementsIn); 00512 }; 00513 00514 00515 00516 // ***************************************************************************** 00517 // oaIntRangeArrayValue 00518 // ***************************************************************************** 00519 class OA_BASE_DLL_API oaIntRangeArrayValue : public oaValue { 00520 public: 00521 static oaIntRangeArrayValue *create(oaObject *database, 00522 const oaIntRangeArray &value); 00523 00524 void get(oaIntRangeArray &value) const; 00525 void set(const oaIntRangeArray &value); 00526 }; 00527 00528 00529 00530 // ***************************************************************************** 00531 // oaIntRangeArray1DTblValue 00532 // ***************************************************************************** 00533 class OA_BASE_DLL_API oaIntRangeArray1DTblValue : public oaValue { 00534 public: 00535 static oaIntRangeArray1DTblValue *create(oaObject *database, 00536 const oa1DLookupTbl<oaInt4, oaIntRangeArray> &value); 00537 00538 void get(oa1DLookupTbl<oaInt4, oaIntRangeArray> &value) const; 00539 void set(const oa1DLookupTbl<oaInt4, oaIntRangeArray> &value); 00540 }; 00541 00542 00543 00544 // ***************************************************************************** 00545 // oaIntRangeArray2DTblValue 00546 // ***************************************************************************** 00547 class OA_BASE_DLL_API oaIntRangeArray2DTblValue : public oaValue { 00548 public: 00549 static oaIntRangeArray2DTblValue *create(oaObject *database, 00550 const oa2DLookupTbl<oaInt4, oaInt4, oaIntRangeArray> &value); 00551 00552 void get(oa2DLookupTbl<oaInt4, oaInt4, oaIntRangeArray> &value) const; 00553 void set(const oa2DLookupTbl<oaInt4, oaInt4, oaIntRangeArray> &value); 00554 }; 00555 00556 00557 00558 // ***************************************************************************** 00559 // Traits 00560 // ***************************************************************************** 00561 template<> 00562 class oaTraits<oaValue> { 00563 public: 00564 typedef oaObject parentType; 00565 typedef oaValueModTypeEnum modTypeType; 00566 enum {domain = oacNoDomain}; 00567 enum {isMultiDomain = false}; 00568 enum {isConcrete = false}; 00569 enum {dbType = oacBaseDBType}; 00570 enum {dtIndex = oacBaseValueDataType}; 00571 enum {dataTypeEnumVal = oacBaseValueDataType}; 00572 enum {abstractTypeEnumVal = oacValueType}; 00573 }; 00574 00575 template<> 00576 class oaTraits<oaBooleanValue> { 00577 public: 00578 typedef oaValueModTypeEnum modTypeType; 00579 typedef oaValue parentType; 00580 enum {dtIndex = oacBaseValueDataType}; 00581 enum {dataTypeEnumVal = oacBaseValueDataType}; 00582 enum {domain = oacNoDomain}; 00583 enum {isMultiDomain = false}; 00584 enum {dbType = oacBaseDBType}; 00585 enum {isConcrete = true}; 00586 enum {objectTypeEnumVal = oacBooleanValueType}; 00587 }; 00588 00589 template<> 00590 class oaTraits<oaBoxArrayValue> { 00591 public: 00592 typedef oaValueModTypeEnum modTypeType; 00593 typedef oaValue parentType; 00594 enum {dtIndex = oacBaseValueDataType}; 00595 enum {dataTypeEnumVal = oacBaseValueDataType}; 00596 enum {domain = oacNoDomain}; 00597 enum {isMultiDomain = false}; 00598 enum {dbType = oacBaseDBType}; 00599 enum {isConcrete = true}; 00600 enum {objectTypeEnumVal = oacBoxArrayValueType}; 00601 }; 00602 00603 template<> 00604 class oaTraits<oaDualIntValue> { 00605 public: 00606 typedef oaValueModTypeEnum modTypeType; 00607 typedef oaValue parentType; 00608 enum {dtIndex = oacBaseValueDataType}; 00609 enum {dataTypeEnumVal = oacBaseValueDataType}; 00610 enum {domain = oacNoDomain}; 00611 enum {isMultiDomain = false}; 00612 enum {dbType = oacBaseDBType}; 00613 enum {isConcrete = true}; 00614 enum {objectTypeEnumVal = oacDualIntValueType}; 00615 }; 00616 00617 template<> 00618 class oaTraits<oaDualInt1DTblValue> { 00619 public: 00620 typedef oaValueModTypeEnum modTypeType; 00621 typedef oaValue parentType; 00622 enum {dtIndex = oacBaseValueDataType}; 00623 enum {dataTypeEnumVal = oacBaseValueDataType}; 00624 enum {domain = oacNoDomain}; 00625 enum {isMultiDomain = false}; 00626 enum {dbType = oacBaseDBType}; 00627 enum {isConcrete = true}; 00628 enum {objectTypeEnumVal = oacDualInt1DTblValueType}; 00629 }; 00630 00631 template<> 00632 class oaTraits<oaFltValue> { 00633 public: 00634 typedef oaValueModTypeEnum modTypeType; 00635 typedef oaValue parentType; 00636 enum {dtIndex = oacBaseValueDataType}; 00637 enum {dataTypeEnumVal = oacBaseValueDataType}; 00638 enum {domain = oacNoDomain}; 00639 enum {isMultiDomain = false}; 00640 enum {dbType = oacBaseDBType}; 00641 enum {isConcrete = true}; 00642 enum {objectTypeEnumVal = oacFltValueType}; 00643 }; 00644 00645 template<> 00646 class oaTraits<oaFlt1DTblValue> { 00647 public: 00648 typedef oaValueModTypeEnum modTypeType; 00649 typedef oaValue parentType; 00650 enum {dtIndex = oacBaseValueDataType}; 00651 enum {dataTypeEnumVal = oacBaseValueDataType}; 00652 enum {domain = oacNoDomain}; 00653 enum {isMultiDomain = false}; 00654 enum {dbType = oacBaseDBType}; 00655 enum {isConcrete = true}; 00656 enum {objectTypeEnumVal = oacFlt1DTblValueType}; 00657 }; 00658 00659 template<> 00660 class oaTraits<oaFlt2DTblValue> { 00661 public: 00662 typedef oaValueModTypeEnum modTypeType; 00663 typedef oaValue parentType; 00664 enum {dtIndex = oacBaseValueDataType}; 00665 enum {dataTypeEnumVal = oacBaseValueDataType}; 00666 enum {domain = oacNoDomain}; 00667 enum {isMultiDomain = false}; 00668 enum {dbType = oacBaseDBType}; 00669 enum {isConcrete = true}; 00670 enum {objectTypeEnumVal = oacFlt2DTblValueType}; 00671 }; 00672 00673 template<> 00674 class oaTraits<oaFltIntFltTblValue> { 00675 public: 00676 typedef oaValueModTypeEnum modTypeType; 00677 typedef oaValue parentType; 00678 enum {dtIndex = oacBaseValueDataType}; 00679 enum {dataTypeEnumVal = oacBaseValueDataType}; 00680 enum {domain = oacNoDomain}; 00681 enum {isMultiDomain = false}; 00682 enum {dbType = oacBaseDBType}; 00683 enum {isConcrete = true}; 00684 enum {objectTypeEnumVal = oacFltIntFltTblValueType}; 00685 }; 00686 00687 template<> 00688 class oaTraits<oaIntValue> { 00689 public: 00690 typedef oaValueModTypeEnum modTypeType; 00691 typedef oaValue parentType; 00692 enum {dtIndex = oacBaseValueDataType}; 00693 enum {dataTypeEnumVal = oacBaseValueDataType}; 00694 enum {domain = oacNoDomain}; 00695 enum {isMultiDomain = false}; 00696 enum {dbType = oacBaseDBType}; 00697 enum {isConcrete = true}; 00698 enum {objectTypeEnumVal = oacIntValueType}; 00699 }; 00700 00701 template<> 00702 class oaTraits<oaInt1DTblValue> { 00703 public: 00704 typedef oaValue parentType; 00705 enum {dtIndex = oacBaseValueDataType}; 00706 enum {dataTypeEnumVal = oacBaseValueDataType}; 00707 enum {domain = oacNoDomain}; 00708 enum {isMultiDomain = false}; 00709 enum {dbType = oacBaseDBType}; 00710 enum {isConcrete = true}; 00711 enum {objectTypeEnumVal = oacInt1DTblValueType}; 00712 }; 00713 00714 template<> 00715 class oaTraits<oaInt2DTblValue> { 00716 public: 00717 typedef oaValueModTypeEnum modTypeType; 00718 typedef oaValue parentType; 00719 enum {dtIndex = oacBaseValueDataType}; 00720 enum {dataTypeEnumVal = oacBaseValueDataType}; 00721 enum {domain = oacNoDomain}; 00722 enum {isMultiDomain = false}; 00723 enum {dbType = oacBaseDBType}; 00724 enum {isConcrete = true}; 00725 enum {objectTypeEnumVal = oacInt2DTblValueType}; 00726 }; 00727 00728 template<> 00729 class oaTraits<oaIntFltTblValue> { 00730 public: 00731 typedef oaValueModTypeEnum modTypeType; 00732 typedef oaValue parentType; 00733 enum {dtIndex = oacBaseValueDataType}; 00734 enum {dataTypeEnumVal = oacBaseValueDataType}; 00735 enum {domain = oacNoDomain}; 00736 enum {isMultiDomain = false}; 00737 enum {dbType = oacBaseDBType}; 00738 enum {isConcrete = true}; 00739 enum {objectTypeEnumVal = oacIntFltTblValueType}; 00740 }; 00741 00742 template<> 00743 class oaTraits<oaValueArrayValue> { 00744 public: 00745 typedef oaValueModTypeEnum modTypeType; 00746 typedef oaValue parentType; 00747 enum {dtIndex = oacBaseValueDataType}; 00748 enum {dataTypeEnumVal = oacBaseValueDataType}; 00749 enum {domain = oacNoDomain}; 00750 enum {isMultiDomain = false}; 00751 enum {dbType = oacBaseDBType}; 00752 enum {isConcrete = true}; 00753 enum {objectTypeEnumVal = oacValueArrayValueType}; 00754 }; 00755 00756 template<> 00757 class oaTraits<oaIntDualIntArrayTblValue> { 00758 public: 00759 typedef oaValueModTypeEnum modTypeType; 00760 typedef oaValue parentType; 00761 enum {dtIndex = oacBaseValueDataType}; 00762 enum {dataTypeEnumVal = oacBaseValueDataType}; 00763 enum {domain = oacNoDomain}; 00764 enum {isMultiDomain = false}; 00765 enum {dbType = oacBaseDBType}; 00766 enum {isConcrete = true}; 00767 enum {objectTypeEnumVal = oacIntDualIntArrayTblValueType}; 00768 }; 00769 00770 template<> 00771 class oaTraits<oaIntRangeValue> { 00772 public: 00773 typedef oaValueModTypeEnum modTypeType; 00774 typedef oaValue parentType; 00775 enum {dtIndex = oacBaseValueDataType}; 00776 enum {dataTypeEnumVal = oacBaseValueDataType}; 00777 enum {domain = oacNoDomain}; 00778 enum {isMultiDomain = false}; 00779 enum {dbType = oacBaseDBType}; 00780 enum {isConcrete = true}; 00781 enum {objectTypeEnumVal = oacIntRangeValueType}; 00782 }; 00783 00784 template<> 00785 class oaTraits<oaUInt8Value> { 00786 public: 00787 typedef oaValueModTypeEnum modTypeType; 00788 typedef oaValue parentType; 00789 enum {dtIndex = oacBaseValueDataType}; 00790 enum {dataTypeEnumVal = oacBaseValueDataType}; 00791 enum {domain = oacNoDomain}; 00792 enum {isMultiDomain = false}; 00793 enum {dbType = oacBaseDBType}; 00794 enum {isConcrete = true}; 00795 enum {objectTypeEnumVal = oacUInt8ValueType}; 00796 }; 00797 00798 template<> 00799 class oaTraits<oaUInt8RangeValue> { 00800 public: 00801 typedef oaValueModTypeEnum modTypeType; 00802 typedef oaValue parentType; 00803 enum {dtIndex = oacBaseValueDataType}; 00804 enum {dataTypeEnumVal = oacBaseValueDataType}; 00805 enum {domain = oacNoDomain}; 00806 enum {isMultiDomain = false}; 00807 enum {dbType = oacBaseDBType}; 00808 enum {isConcrete = true}; 00809 enum {objectTypeEnumVal = oacUInt8RangeValueType}; 00810 }; 00811 00812 template<> 00813 class oaTraits<oaIntRangeArrayValue> { 00814 public: 00815 typedef oaValueModTypeEnum modTypeType; 00816 typedef oaValue parentType; 00817 enum {dtIndex = oacBaseValueDataType}; 00818 enum {dataTypeEnumVal = oacBaseValueDataType}; 00819 enum {domain = oacNoDomain}; 00820 enum {isMultiDomain = false}; 00821 enum {dbType = oacBaseDBType}; 00822 enum {isConcrete = true}; 00823 enum {objectTypeEnumVal = oacIntRangeArrayValueType}; 00824 }; 00825 00826 template<> 00827 class oaTraits<oaIntRangeArray1DTblValue> { 00828 public: 00829 typedef oaValueModTypeEnum modTypeType; 00830 typedef oaValue parentType; 00831 enum {dtIndex = oacBaseValueDataType}; 00832 enum {dataTypeEnumVal = oacBaseValueDataType}; 00833 enum {domain = oacNoDomain}; 00834 enum {isMultiDomain = false}; 00835 enum {dbType = oacBaseDBType}; 00836 enum {isConcrete = true}; 00837 enum {objectTypeEnumVal = oacIntRangeArray1DTblValueType}; 00838 }; 00839 00840 template<> 00841 class oaTraits<oaIntRangeArray2DTblValue> { 00842 public: 00843 typedef oaValueModTypeEnum modTypeType; 00844 typedef oaValue parentType; 00845 enum {dtIndex = oacBaseValueDataType}; 00846 enum {dataTypeEnumVal = oacBaseValueDataType}; 00847 enum {domain = oacNoDomain}; 00848 enum {isMultiDomain = false}; 00849 enum {dbType = oacBaseDBType}; 00850 enum {isConcrete = true}; 00851 enum {objectTypeEnumVal = oacIntRangeArray2DTblValueType}; 00852 }; 00853 00854 template<> 00855 class oaTraits<oaStringValue> { 00856 public: 00857 typedef oaValueModTypeEnum modTypeType; 00858 typedef oaValue parentType; 00859 enum {dtIndex = oacBaseValueDataType}; 00860 enum {dataTypeEnumVal = oacBaseValueDataType}; 00861 enum {domain = oacNoDomain}; 00862 enum {isMultiDomain = false}; 00863 enum {dbType = oacBaseDBType}; 00864 enum {isConcrete = true}; 00865 enum {objectTypeEnumVal = oacStringValueType}; 00866 }; 00867 00868 00869 00870 END_OA_NAMESPACE 00871 00872 #endif
Copyright © 2002 - 2010 Cadence Design Systems, Inc.
All Rights Reserved.