oaDesignDBTypes.h

Go to the documentation of this file.
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

Return to top of page