00001 // ***************************************************************************** 00002 // ***************************************************************************** 00003 // oaDesignDBTypes.h 00004 // 00005 // This file contains type definitions and declarations for this package. 00006 // 00007 // ***************************************************************************** 00008 // Except as specified in the OpenAccess terms of use of Cadence or Silicon 00009 // Integration Initiative, this material may not be copied, modified, 00010 // re-published, uploaded, executed, or distributed in any way, in any medium, 00011 // in whole or in part, without prior written permission from Cadence. 00012 // 00013 // Copyright 2002-2006 Cadence Design Systems, Inc. 00014 // All Rights Reserved. 00015 // 00016 // $Author: icftcm $ 00017 // $Revision: #1 $ 00018 // $Date: 2010/08/09 $ 00019 // $State: Exp $ 00020 // ***************************************************************************** 00021 // ***************************************************************************** 00022 00023 00024 00025 #if !defined(oaDesignDBTypes_P) 00026 #define oaDesignDBTypes_P 00027 00028 00029 00030 // ***************************************************************************** 00031 // Nested includes 00032 // ***************************************************************************** 00033 #include "oaBuildDef.h" 00034 #include "oaString.h" 00035 00036 00037 00038 // ***************************************************************************** 00039 // Declare and define types in the OpenAccess namespace. 00040 // ***************************************************************************** 00041 BEGIN_OA_NAMESPACE 00042 00043 00044 00045 // ***************************************************************************** 00046 // Windows DLL export macros 00047 // ***************************************************************************** 00048 #if defined(OA_WINDOWS) && defined(OA_DESIGN_DLL_EXPORTS) 00049 #define OA_DESIGN_DLL_API __declspec(dllexport) 00050 #define OA_DESIGN_DLL_PVT __declspec(dllexport) 00051 #define OA_DESIGN_DLL_EXTERN 00052 #elif defined(OA_WINDOWS) && !defined(OA_STATIC) 00053 #define OA_DESIGN_DLL_API __declspec(dllimport) 00054 #define OA_DESIGN_DLL_PVT __declspec(dllimport) 00055 #define OA_DESIGN_DLL_EXTERN extern 00056 #else 00057 #define OA_DESIGN_DLL_API 00058 #define OA_DESIGN_DLL_PVT 00059 #endif 00060 00061 00062 00063 // ***************************************************************************** 00064 // oaDesignDataTypeEnum 00065 // 00066 // The first several entries are for the database itself and for data types with 00067 // a variable number of tables. These entries should not be included in the 00068 // number of data types. The entries between 0 and oavBaseNumDataTypes are 00069 // common to all databases and must match oaBaseDataTypeEnum. The entries 00070 // between oacNetDataType and oaOccurrenceDataType correspond to the entries 00071 // between oacOccNetDataType and oacOccOccurrenceDataType; the order in both 00072 // ranges must match. Note that the dataID array for dataTbls -- 00073 // oaDesignData::designDataTblIDs -- should match this array. 00074 // ***************************************************************************** 00075 #define oavNumDesignDataTypes 81 00076 #define oavNumNewDesignDataTypes 8 00077 00078 enum oaDesignDataTypeEnum { 00079 oacDesignDataType = UINT_MAX, 00080 oacAppObjectDataType = UINT_MAX - 1, 00081 00082 oacOccNetDataType = UINT_MAX - 2, 00083 oacOccBusNetDefDataType = UINT_MAX - 3, 00084 oacOccTermDataType = UINT_MAX - 4, 00085 oacOccBusTermDefDataType = UINT_MAX - 5, 00086 oacOccInstHeaderDataType = UINT_MAX - 6, 00087 oacOccModuleInstHeaderDataType = UINT_MAX - 7, 00088 oacOccInstDataType = UINT_MAX - 8, 00089 oacOccVectorInstDefDataType = UINT_MAX - 9, 00090 oacOccInstTermDataType = UINT_MAX - 10, 00091 oacOccConnectDefDataType = UINT_MAX - 11, 00092 oacOccAssignmentDataType = UINT_MAX - 12, 00093 oacOccOccurrenceDataType = UINT_MAX - 13, 00094 00095 oacPropDataType = 0, 00096 oacGroupDataType = 1, 00097 oacGroupMemDataType = 2, 00098 oacAvatarDataType = 3, 00099 oacValueDataType = 4, 00100 oacConstraintParamDefDataType = 5, 00101 oacConstraintParamDataType = 6, 00102 oacConstraintDefDataType = 7, 00103 oacConstraintDataType = 8, 00104 oacConstraintGroupDataType = 9, 00105 oacConstraintGroupMemDataType = 10, 00106 oacConstraintGroupHeaderDataType = 11, 00107 00108 oacNetDataType = 12, 00109 oacBusNetDefDataType = 13, 00110 oacTermDataType = 14, 00111 oacBusTermDefDataType = 15, 00112 oacInstHeaderDataType = 16, 00113 oacModuleInstHeaderDataType = 17, 00114 oacInstDataType = 18, 00115 oacVectorInstDefDataType = 19, 00116 oacInstTermDataType = 20, 00117 oacConnectDefDataType = 21, 00118 oacAssignmentDataType = 22, 00119 oacOccurrenceDataType = 23, 00120 oacLPPHeaderDataType = 24, 00121 oacLayerHeaderDataType = 25, 00122 oacShapeDataType = 26, 00123 oacRouteDataType = 27, 00124 oacPinDataType = 28, 00125 oacTDLinkDataType = 29, 00126 oacDesignParamDataType = 30, 00127 oacMarkerDataType = 31, 00128 oacTrackPatternDataType = 32, 00129 oacMarkerMemDataType = 33, 00130 oacRowHeaderDataType = 34, 00131 oacRowDataType = 35, 00132 oacClusterDataType = 36, 00133 oacBoundaryDataType = 37, 00134 oacSteinerDataType = 38, 00135 oacScanChainDataType = 39, 00136 oacScanChainInstDataType = 40, 00137 oacScanChainSetDataType = 41, 00138 oacViaHeaderDataType = 42, 00139 oacGCellPatternDataType = 43, 00140 oacCMapDataType = 44, 00141 oacCMapLPDataType = 45, 00142 oacGCellDataType = 46, 00143 oacDesignViaParamDataType = 47, 00144 oacAnalysisPointDataType = 48, 00145 oacAnalysisOpPointDataType = 49, 00146 oacOpPointHeaderDataType = 50, 00147 oacBlockageDataType = 51, 00148 oacGuideDataType = 52, 00149 oacParasiticNetworkDataType = 53, 00150 oacNodeDataType = 54, 00151 oacDeviceDataType = 55, 00152 oacSubNetworkDataType = 56, 00153 oacSubNetworkMemDataType = 57, 00154 oacReducedModelDataType = 58, 00155 oacElmoreDataType = 59, 00156 oacPoleResidueDataType = 60, 00157 oacBlockDataType = 61, 00158 oacModuleDataType = 62, 00159 oacOccHeaderDataType = 63, 00160 oacViaDataType = 64, 00161 oacSegStyleDataType = 65, 00162 oacOccShapeDataType = 66, 00163 oacHierPathDataType = 67, 00164 oacAnalysisPtSetDataType = 68, 00165 oacDetailedNetworkDataType = 69, 00166 oacGlobalDataType = 70, 00167 oacGlobalMemDataType = 71, 00168 oacOccGlobalMemDataType = 72, 00169 oacFeatureDataType = 73, 00170 oacFeaturePolicyDataType = 74, 00171 oacFigGroupDataType = 75, 00172 oacFigGroupMemDataType = 76, 00173 oacGroupDefDataType = 77, 00174 oacConstraintGroupDefDataType = 78, 00175 00176 oacDesignViaVariantDataType = 79, 00177 oacDesignViaVariantHeaderDataType = 80 00178 }; 00179 00180 00181 00182 // ***************************************************************************** 00183 // oaDesignDataType 00184 // ***************************************************************************** 00185 class OA_DESIGN_DLL_API oaDesignDataType { 00186 public: 00187 oaDesignDataType(oaDesignDataTypeEnum valueIn); 00188 oaDesignDataType(const oaString &name); 00189 ~oaDesignDataType(); 00190 00191 const oaString &getName() const; 00192 00193 operator oaDesignDataTypeEnum() const; 00194 00195 private: 00196 static const oaString *initNames(); 00197 00198 oaDesignDataTypeEnum value; 00199 00200 static const oaString names[]; 00201 static const oaString varNames[]; 00202 }; 00203 00204 00205 00206 // ***************************************************************************** 00207 // Forward Private Class Declarations 00208 // ***************************************************************************** 00209 class oaAnalysisOpPointTbl; 00210 class oaAnalysisPointTbl; 00211 class oaAnalysisPtMapTbl; 00212 class oaAnalysisPtSetTbl; 00213 class oaArcTbl; 00214 class oaAssignmentTbl; 00215 class oaAttrDisplayTbl; 00216 class oaBlockTbl; 00217 class oaBlockageQueryPvt; 00218 class oaBlockageTbl; 00219 class oaBoundaryQueryPvt; 00220 class oaBoundaryTbl; 00221 class oaBusNetDefTbl; 00222 class oaBusTermDefTbl; 00223 class oaCMapLPTbl; 00224 class oaCMapTbl; 00225 class oaClusterTbl; 00226 class oaConnectDefTbl; 00227 class oaCoupledNetTbl; 00228 class oaCouplingCapTbl; 00229 class oaDesignData; 00230 class oaDesignDataIter; 00231 class oaDesignDataTbl; 00232 class oaDesignHashTbl; 00233 class oaDesignHeaderTbl; 00234 class oaDesignViaVariantTbl; 00235 class oaDesignViaVariantHeaderTbl; 00236 class oaDesignLibObserver; 00237 class oaDesignStaticVarMemory; 00238 class oaDesignTechObserver; 00239 class oaDesignUndoObserverPvt; 00240 class oaDetailedData; 00241 class oaDetailedNetworkTbl; 00242 class oaDeviceIdHashTbl; 00243 class oaDeviceNameHashTbl; 00244 class oaDeviceTbl; 00245 class oaDiodeTbl; 00246 class oaDonutTbl; 00247 class oaEllipseTbl; 00248 class oaElmoreTbl; 00249 class oaEvalTextTbl; 00250 class oaFigGroupTbl; 00251 class oaFigGroupMemTbl; 00252 class oaFigGroupQueryPvt; 00253 class oaFigTbl; 00254 class oaGCellPatternTbl; 00255 class oaGCellTbl; 00256 class oaGroundedNodeTbl; 00257 class oaGuideQueryPvt; 00258 class oaGuideTbl; 00259 class oaHierPathTbl; 00260 class oaInductorTbl; 00261 class oaInstAttrDisplayTbl; 00262 class oaInstHeaderTbl; 00263 class oaInstPropDisplayTbl; 00264 class oaInstQueryPvt; 00265 class oaInstTbl; 00266 class oaInstTermTbl; 00267 class oaInstTermValidator; 00268 class oaLPPHeaderHashTbl; 00269 class oaLayerHeaderTbl; 00270 class oaLayerHeaderHashTbl; 00271 class oaLayerRangeBlockageQueryPvt; 00272 class oaLPPHeaderTbl; 00273 class oaLineTbl; 00274 class oaMarkerMemTbl; 00275 class oaMarkerQueryPvt; 00276 class oaMarkerTbl; 00277 class oaModuleInstHeaderTbl; 00278 class oaModuleTbl; 00279 class oaMutualInductorTbl; 00280 class oaNetTbl; 00281 class oaNodeConnTbl; 00282 class oaNodeNameHashTbl; 00283 class oaNodeSubTbl; 00284 class oaNodeTbl; 00285 class oaOccDataTbl; 00286 class oaOccInstTbl; 00287 class oaOccHeaderList; 00288 class oaOccHeaderTbl; 00289 class oaOccOccurrenceTbl; 00290 class oaOccShapeTbl; 00291 class oaOccTraverserPvt; 00292 class oaOccurrenceTbl; 00293 class oaOpPointHeaderTbl; 00294 class oaPagedDataTbl; 00295 class oaPagedDatabase; 00296 class oaPagedFreeListTbl; 00297 class oaPagedTbl; 00298 class oaParamArrayData; 00299 class oaParamData; 00300 class oaDesignParamTbl; 00301 class oaParasiticNetworkTbl; 00302 class oaPathSegTbl; 00303 class oaPathTbl; 00304 class oaPcellDef; 00305 class oaPinTbl; 00306 class oaPlacementBlockageQueryPvt; 00307 class oaPoleResidueTbl; 00308 class oaPolygonTbl; 00309 class oaPropDisplayTbl; 00310 class oaRectTbl; 00311 class oaReducedModelTbl; 00312 class oaRefTbl; 00313 class oaRefHeaderList; 00314 class oaRefHeaderTbl; 00315 class oaRefHeaderTbl; 00316 class oaRegionQueryPvt; 00317 class oaResistorTbl; 00318 class oaRouteTbl; 00319 class oaRowHeaderTbl; 00320 class oaRowQueryPvt; 00321 class oaRowTbl; 00322 class oaScanChainInstTbl; 00323 class oaScanChainSetTbl; 00324 class oaScanChainTbl; 00325 class oaSegStyleTbl; 00326 class oaSeriesRLTbl; 00327 class oaShapeQueryPvt; 00328 class oaShapeTbl; 00329 class oaStdDeviceData; 00330 class oaSteinerQueryPvt; 00331 class oaSteinerTbl; 00332 class oaSubMasterData; 00333 class oaSubMasterData; 00334 class oaSubNetworkMemTbl; 00335 class oaSubNetworkNameHashTbl; 00336 class oaSubNetworkTbl; 00337 class oaSuperMasterData; 00338 class oaSuperMasterData; 00339 class oaTDLinkTbl; 00340 class oaTermMap; 00341 class oaTermTbl; 00342 class oaTextDisplayTbl; 00343 class oaTextOverrideTbl; 00344 class oaTextTbl; 00345 class oaTrackPatternTbl; 00346 class oaVariantHashTbl; 00347 class oaVectorInstDefTbl; 00348 class oaViaHeaderHashTbl; 00349 class oaViaHeaderTbl; 00350 class oaViaMasterData; 00351 class oaDesignViaParamTbl; 00352 class oaViaQueryPvt; 00353 class oaViaTbl; 00354 class oaDesignViaVariantHeaderTbl; 00355 00356 template <class T> 00357 class oaUnboundListTbl; 00358 00359 00360 00361 // ***************************************************************************** 00362 // Forward Public Class Declarations 00363 // ***************************************************************************** 00364 class oaAnalysisOpPoint; 00365 class oaAnalysisPoint; 00366 class oaAnalysisPointArray; 00367 class oaAntennaArea; 00368 class oaAntennaAreaArray; 00369 class oaAntennaData; 00370 class oaAreaBoundary; 00371 class oaArrayInst; 00372 class oaAssignment; 00373 class oaAssignmentDef; 00374 class oaBitInst; 00375 class oaBitNet; 00376 class oaBitTerm; 00377 class oaBlock; 00378 class oaBlockage; 00379 class oaBlockage; 00380 class oaBoundary; 00381 class oaBundleNet; 00382 class oaBundleTerm; 00383 class oaBundleTerm; 00384 class oaBusNet; 00385 class oaBusNetBit; 00386 class oaBusNetDef; 00387 class oaBusTerm; 00388 class oaBusTermBit; 00389 class oaBusTermDef; 00390 class oaCMap; 00391 class oaDesign; 00392 class oaDesignType; 00393 class oaCluster; 00394 class oaClusterBoundary; 00395 class oaConnectDef; 00396 class oaCouplingCap; 00397 class oaDevice; 00398 class oaElmore; 00399 class oaEvalTextLink; 00400 class oaFig; 00401 class oaFigGroup; 00402 class oaFigGroupMem; 00403 class oaConnFig; 00404 class oaPinFig; 00405 class oaGCellPattern; 00406 class oaGroundedNode; 00407 class oaGuide; 00408 class oaHierPath; 00409 class oaInductor; 00410 class oaInst; 00411 class oaInstHeader; 00412 class oaInstTerm; 00413 class oaLPPHeader; 00414 class oaLayerHeader; 00415 class oaLine; 00416 class oaLumpedElmore; 00417 class oaMarker; 00418 class oaModAssignment; 00419 class oaModBitInst; 00420 class oaModBitNet; 00421 class oaModBitTerm; 00422 class oaModBundleNet; 00423 class oaModBundleTerm; 00424 class oaModBusNet; 00425 class oaModBusNetBit; 00426 class oaModBusNetDef; 00427 class oaModBusTerm; 00428 class oaModBusTermBit; 00429 class oaModBusTermDef; 00430 class oaModDesignInst; 00431 class oaModConnectDef; 00432 class oaModConnectDef; 00433 class oaModInst; 00434 class oaModInstHeader; 00435 class oaModInstTerm; 00436 class oaModModuleInst; 00437 class oaModModuleInstHeader; 00438 class oaModNet; 00439 class oaModNetConnectDef; 00440 class oaModNetTermArray; 00441 class oaModNetTermNameArray; 00442 class oaModNetTermPosArray; 00443 class oaModScalarInst; 00444 class oaModModuleScalarInst; 00445 class oaModScalarNet; 00446 class oaModScalarTerm; 00447 class oaModTerm; 00448 class oaModTermConnectDef; 00449 class oaModVectorInstBit; 00450 class oaModVectorInstDef; 00451 class oaModModuleVectorInst; 00452 class oaModModuleVectorInstBit; 00453 class oaModule; 00454 class oaMutualInductor; 00455 class oaNet; 00456 class oaNetConnectDef; 00457 class oaNetTermArray; 00458 class oaNetTermNameArray; 00459 class oaNetTermPosArray; 00460 class oaNode; 00461 class oaOccArrayInst; 00462 class oaOccAssignment; 00463 class oaOccBitInst; 00464 class oaOccBitNet; 00465 class oaOccBitTerm; 00466 class oaOccBundleNet; 00467 class oaOccBundleTerm; 00468 class oaOccBusNet; 00469 class oaOccBusNetBit; 00470 class oaOccBusNetDef; 00471 class oaOccBusTerm; 00472 class oaOccBusTermBit; 00473 class oaOccBusTermDef; 00474 class oaOccDesignInst; 00475 class oaOccConnectDef; 00476 class oaOccConnectDef; 00477 class oaOccInst; 00478 class oaOccInstHeader; 00479 class oaOccInstTerm; 00480 class oaOccModuleInst; 00481 class oaOccModuleInstHeader; 00482 class oaOccModuleScalarInst; 00483 class oaOccObject; 00484 class oaOccNet; 00485 class oaOccNetConnectDef; 00486 class oaOccScalarNet; 00487 class oaOccScalarTerm; 00488 class oaOccTerm; 00489 class oaOccTermConnectDef; 00490 class oaOccTraverser; 00491 class oaOccVectorInstBit; 00492 class oaOccVectorInstDef; 00493 class oaOccModuleVectorInst; 00494 class oaOccModuleVectorInstBit; 00495 class oaOccShape; 00496 class oaOccurrence; 00497 class oaOpPointHeader; 00498 class oaParasiticNetwork; 00499 class oaParasiticQuery; 00500 class oaParasiticQueryPvt; 00501 class oaPcellLink; 00502 class oaPiElmore; 00503 class oaPiPoleResidue; 00504 class oaPin; 00505 class oaPoleResidue; 00506 class oaPoleResidue; 00507 class oaPolygon; 00508 class oaRef; 00509 class oaRefHeader; 00510 class oaRegionQueryPlug; 00511 class oaRegionQueryPlugMgr; 00512 class oaResistor; 00513 class oaRoute; 00514 class oaRow; 00515 class oaRowHeader; 00516 class oaScalarInst; 00517 class oaScalarNet; 00518 class oaScalarTerm; 00519 class oaScanChain; 00520 class oaScanChainInst; 00521 class oaScanChainSet; 00522 class oaScriptEngineLink; 00523 class oaSeriesRL; 00524 class oaShape; 00525 class oaStdDevice; 00526 class oaSteiner; 00527 class oaSubNetwork; 00528 class oaTerm; 00529 class oaTermConnectDef; 00530 class oaTextDisplayCollection; 00531 class oaTrackPattern; 00532 class oaVectorInst; 00533 class oaVectorInstBit; 00534 class oaVectorInstDef; 00535 class oaVia; 00536 class oaViaHeader; 00537 class oaDesignViaVariantHeader; 00538 00539 00540 00541 // ***************************************************************************** 00542 // Initialization Function Declaration 00543 // ***************************************************************************** 00544 OA_DESIGN_DLL_API extern void 00545 oaDesignInit(oaUInt4 apiMajorRev = oacAPIMajorRevNumber, 00546 oaUInt4 apiMinorRev = oacAPIMinorRevNumber); 00547 00548 OA_DESIGN_DLL_API extern void 00549 oaDesignInit(oaUInt4 apiMajorRev, 00550 oaUInt4 apiMinorRev, 00551 oaUInt4 dataModelRev); 00552 00553 00554 END_OA_NAMESPACE 00555 00556 00557 00558 // ***************************************************************************** 00559 // Implementation Include 00560 // ***************************************************************************** 00561 #include "oaDesignDBTypes.inl" 00562 00563 00564 00565 #endif
Copyright © 2002 - 2010 Cadence Design Systems, Inc.
All Rights Reserved.