00001 // ***************************************************************************** 00002 // ***************************************************************************** 00003 // oaTechValue.h 00004 // 00005 // This file contains the definitions for the following classes: 00006 // oaLayerValue 00007 // oaLayerArrayValue 00008 // oaPurposeValue 00009 // oaViaDefArrayValue 00010 // oaAntennaRatioValue 00011 // oaAntennaRatioArrayValue 00012 // oaViaTopologyArrayValue 00013 // oaViaTopology2DTblValue 00014 // 00015 // ***************************************************************************** 00016 // Except as specified in the OpenAccess terms of use of Cadence or Silicon 00017 // Integration Initiative, this material may not be copied, modified, 00018 // re-published, uploaded, executed, or distributed in any way, in any medium, 00019 // in whole or in part, without prior written permission from Cadence. 00020 // 00021 // Copyright 2002-2005 Cadence Design Systems, Inc. 00022 // All Rights Reserved. 00023 // 00024 // $Author: icftcm $ 00025 // $Revision: #1 $ 00026 // $Date: 2010/08/09 $ 00027 // $State: Exp $ 00028 // ***************************************************************************** 00029 // ***************************************************************************** 00030 00031 00032 00033 #if !defined(oaTechValue_P) 00034 #define oaTechValue_P 00035 00036 00037 00038 // ***************************************************************************** 00039 // Nested includes 00040 // ***************************************************************************** 00041 #include "oaViaDefArray.h" 00042 #include "oaViaTopology.h" 00043 00044 00045 00046 // ***************************************************************************** 00047 // Declare and define types in the OpenAccess namespace. 00048 // ***************************************************************************** 00049 BEGIN_OA_NAMESPACE 00050 00051 00052 00053 // ***************************************************************************** 00054 // oaViaDefNameArray 00055 // ***************************************************************************** 00056 class OA_TECH_DLL_API oaViaDefNameArray : public oaArray<oaString> { 00057 public: 00058 oaViaDefNameArray(oaUInt4 sizeIn = 0); 00059 }; 00060 00061 00062 00063 // ***************************************************************************** 00064 // oaLayerValue 00065 // ***************************************************************************** 00066 class OA_TECH_DLL_API oaLayerValue : public oaValue { 00067 public: 00068 static oaLayerValue *create(oaObject *database, 00069 oaLayerNum value); 00070 00071 oaLayerNum get() const; 00072 void set(oaLayerNum value); 00073 }; 00074 00075 00076 00077 // ***************************************************************************** 00078 // oaLayerArrayValue 00079 // ***************************************************************************** 00080 class OA_TECH_DLL_API oaLayerArrayValue : public oaValue { 00081 public: 00082 static oaLayerArrayValue *create(oaObject *database, 00083 const oaLayerArray &value); 00084 #if !defined(OA_DEPRECATED) 00085 static oaLayerArrayValue *create(oaObject *database, 00086 oaLayerArray &value); 00087 #endif 00088 00089 void get(oaLayerArray &value) const; 00090 void set(const oaLayerArray &value); 00091 }; 00092 00093 00094 00095 // ***************************************************************************** 00096 // oaPurposeValue 00097 // ***************************************************************************** 00098 class OA_TECH_DLL_API oaPurposeValue : public oaValue { 00099 public: 00100 static oaPurposeValue *create(oaObject *database, 00101 oaPurposeNum value); 00102 00103 oaPurposeNum get() const; 00104 void set(oaPurposeNum value); 00105 }; 00106 00107 00108 00109 // ***************************************************************************** 00110 // oaViaDefArrayValue 00111 // ***************************************************************************** 00112 class OA_TECH_DLL_API oaViaDefArrayValue : public oaValue { 00113 public: 00114 static oaViaDefArrayValue *create(oaObject *database, 00115 const oaViaDefArray &value); 00116 #if !defined(OA_DEPRECATED) 00117 static oaViaDefArrayValue *create(oaObject *database, 00118 oaViaDefArray &value); 00119 #endif 00120 00121 void get(oaViaDefArray &value) const; 00122 void getNames(oaViaDefNameArray &names) const; 00123 void set(const oaViaDefArray &value); 00124 }; 00125 00126 00127 00128 // ***************************************************************************** 00129 // oaAntennaRatioValue 00130 // ***************************************************************************** 00131 class OA_TECH_DLL_API oaAntennaRatioValue : public oaValue { 00132 public: 00133 static oaAntennaRatioValue *create(oaObject *database, 00134 oaBoolean isSide, 00135 oaFloat gateRatio, 00136 const oa1DLookupTbl<oaInt8, oaFloat> &diodeRatio); 00137 00138 oaBoolean isSide() const; 00139 oaFloat getGate() const; 00140 void getDiode(oa1DLookupTbl<oaInt8, oaFloat> &ratio) const; 00141 00142 void setSide(oaBoolean isSide); 00143 void setGate(oaFloat ratio); 00144 void setDiode(const oa1DLookupTbl<oaInt8, oaFloat> &ratio); 00145 }; 00146 00147 00148 00149 // ***************************************************************************** 00150 // oaAntennaRatioArrayValue 00151 // ***************************************************************************** 00152 class OA_TECH_DLL_API oaAntennaRatioArrayValue : public oaValue { 00153 public: 00154 static oaAntennaRatioArrayValue *create(oaObject *database, 00155 oaAntennaRatioValue *defaultModel, 00156 oaAntennaRatioValue *secondModel = NULL, 00157 oaAntennaRatioValue *thirdModel = NULL, 00158 oaAntennaRatioValue *fourthModel = NULL); 00159 00160 oaAntennaRatioValue *get(const oaAntennaModel &model) const; 00161 void set(const oaAntennaModel &model, 00162 oaAntennaRatioValue *value); 00163 }; 00164 00165 00166 00167 // ***************************************************************************** 00168 // oaViaDef2DTblValue 00169 // ***************************************************************************** 00170 class OA_TECH_DLL_API oaViaDef2DTblValue : public oaValue { 00171 public: 00172 static oaViaDef2DTblValue *create(oaObject *database, 00173 const oa2DLookupTbl<oaInt4, oaInt4, oaViaDefArrayValue*> &value); 00174 00175 void get(oa2DLookupTbl<oaInt4, oaInt4, oaViaDefArrayValue*> &value) const; 00176 00177 void set(const oa2DLookupTbl<oaInt4, oaInt4, oaViaDefArrayValue*> &value); 00178 }; 00179 00180 00181 00182 // ***************************************************************************** 00183 // oaViaTopologyArrayValue 00184 // ***************************************************************************** 00185 class OA_TECH_DLL_API oaViaTopologyArrayValue : public oaValue { 00186 public: 00187 static oaViaTopologyArrayValue *create(oaObject *database, 00188 const oaViaTopologyArray &value); 00189 00190 void get(oaViaTopologyArray &value) const; 00191 void set(const oaViaTopologyArray &value); 00192 }; 00193 00194 00195 00196 // ***************************************************************************** 00197 // oaViaTopology2DTblValue 00198 // ***************************************************************************** 00199 class OA_TECH_DLL_API oaViaTopology2DTblValue : public oaValue { 00200 public: 00201 static oaViaTopology2DTblValue *create(oaObject *database, 00202 const oa2DLookupTbl<oaInt4, oaInt4, oaViaTopologyArrayValue*> &value); 00203 00204 void get(oa2DLookupTbl<oaInt4, oaInt4, oaViaTopologyArrayValue*> &value) const; 00205 00206 void set(const oa2DLookupTbl<oaInt4, oaInt4, oaViaTopologyArrayValue*> &value); 00207 }; 00208 00209 00210 00211 // ***************************************************************************** 00212 // Tech objects derived from oaValue 00213 // ***************************************************************************** 00214 template<> 00215 class oaTraits<oaLayerValue> { 00216 public: 00217 typedef oaValueModTypeEnum modTypeType; 00218 typedef oaValue parentType; 00219 enum {domain = oacNoDomain}; 00220 enum {isMultiDomain = false}; 00221 enum {dbType = oacBaseDBType}; 00222 enum {dtIndex = oacTechValueDataType}; 00223 enum {isConcrete = true}; 00224 enum {objectTypeEnumVal = oacLayerValueType}; 00225 enum {dataTypeEnumVal = oacTechValueDataType}; 00226 }; 00227 00228 template<> 00229 class oaTraits<oaLayerArrayValue> { 00230 public: 00231 typedef oaValueModTypeEnum modTypeType; 00232 typedef oaValue parentType; 00233 enum {domain = oacNoDomain}; 00234 enum {isMultiDomain = false}; 00235 enum {dbType = oacBaseDBType}; 00236 enum {dtIndex = oacTechValueDataType}; 00237 enum {isConcrete = true}; 00238 enum {objectTypeEnumVal = oacLayerArrayValueType}; 00239 enum {dataTypeEnumVal = oacTechValueDataType}; 00240 }; 00241 00242 template<> 00243 class oaTraits<oaViaDefArrayValue> { 00244 public: 00245 typedef oaValueModTypeEnum modTypeType; 00246 typedef oaValue parentType; 00247 enum {domain = oacNoDomain}; 00248 enum {isMultiDomain = false}; 00249 enum {dbType = oacBaseDBType}; 00250 enum {dtIndex = oacTechValueDataType}; 00251 enum {isConcrete = true}; 00252 enum {objectTypeEnumVal = oacViaDefArrayValueType}; 00253 enum {dataTypeEnumVal = oacTechValueDataType}; 00254 }; 00255 00256 template<> 00257 class oaTraits<oaAntennaRatioValue> { 00258 public: 00259 typedef oaValueModTypeEnum modTypeType; 00260 typedef oaValue parentType; 00261 enum {domain = oacNoDomain}; 00262 enum {isMultiDomain = false}; 00263 enum {dbType = oacBaseDBType}; 00264 enum {dtIndex = oacTechValueDataType}; 00265 enum {isConcrete = true}; 00266 enum {objectTypeEnumVal = oacAntennaRatioValueType}; 00267 enum {dataTypeEnumVal = oacTechValueDataType}; 00268 }; 00269 00270 template<> 00271 class oaTraits<oaAntennaRatioArrayValue> { 00272 public: 00273 typedef oaValueModTypeEnum modTypeType; 00274 typedef oaValue parentType; 00275 enum {domain = oacNoDomain}; 00276 enum {isMultiDomain = false}; 00277 enum {dbType = oacBaseDBType}; 00278 enum {dtIndex = oacTechValueDataType}; 00279 enum {isConcrete = true}; 00280 enum {objectTypeEnumVal = oacAntennaRatioArrayValueType}; 00281 enum {dataTypeEnumVal = oacTechValueDataType}; 00282 }; 00283 00284 template<> 00285 class oaTraits<oaViaDef2DTblValue> { 00286 public: 00287 typedef oaValueModTypeEnum modTypeType; 00288 typedef oaValue parentType; 00289 enum {domain = oacNoDomain}; 00290 enum {isMultiDomain = false}; 00291 enum {dbType = oacBaseDBType}; 00292 enum {dtIndex = oacTechValueDataType}; 00293 enum {isConcrete = true}; 00294 enum {objectTypeEnumVal = oacViaDef2DTblValueType}; 00295 enum {dataTypeEnumVal = oacTechValueDataType}; 00296 }; 00297 00298 template<> 00299 class oaTraits<oaPurposeValue> { 00300 public: 00301 typedef oaValueModTypeEnum modTypeType; 00302 typedef oaValue parentType; 00303 enum {domain = oacNoDomain}; 00304 enum {isMultiDomain = false}; 00305 enum {dbType = oacBaseDBType}; 00306 enum {dtIndex = oacTechValueDataType}; 00307 enum {isConcrete = true}; 00308 enum {objectTypeEnumVal = oacPurposeValueType}; 00309 enum {dataTypeEnumVal = oacTechValueDataType}; 00310 }; 00311 00312 template<> 00313 class oaTraits<oaViaTopologyArrayValue> { 00314 public: 00315 typedef oaValueModTypeEnum modTypeType; 00316 typedef oaValue parentType; 00317 enum {domain = oacNoDomain}; 00318 enum {isMultiDomain = false}; 00319 enum {dbType = oacBaseDBType}; 00320 enum {dtIndex = oacTechValueDataType}; 00321 enum {isConcrete = true}; 00322 enum {objectTypeEnumVal = oacViaTopologyArrayValueType}; 00323 enum {dataTypeEnumVal = oacTechValueDataType}; 00324 }; 00325 00326 template<> 00327 class oaTraits<oaViaTopology2DTblValue> { 00328 public: 00329 typedef oaValueModTypeEnum modTypeType; 00330 typedef oaValue parentType; 00331 enum {domain = oacNoDomain}; 00332 enum {isMultiDomain = false}; 00333 enum {dbType = oacBaseDBType}; 00334 enum {dtIndex = oacTechValueDataType}; 00335 enum {isConcrete = true}; 00336 enum {objectTypeEnumVal = oacViaTopology2DTblValueType}; 00337 enum {dataTypeEnumVal = oacTechValueDataType}; 00338 }; 00339 00340 00341 00342 END_OA_NAMESPACE 00343 00344 #endif
Copyright © 2002 - 2010 Cadence Design Systems, Inc.
All Rights Reserved.