00001 // ***************************************************************************** 00002 // oaTechDBTypes.h 00003 // 00004 // This file contains type definitions and declarations for this package. 00005 // 00006 // ***************************************************************************** 00007 // Except as specified in the OpenAccess terms of use of Cadence or Silicon 00008 // Integration Initiative, this material may not be copied, modified, 00009 // re-published, uploaded, executed, or distributed in any way, in any medium, 00010 // in whole or in part, without prior written permission from Cadence. 00011 // 00012 // Copyright 2002-2005 Cadence Design Systems, Inc. 00013 // All Rights Reserved. 00014 // 00015 // $Author: icftcm $ 00016 // $Revision: #1 $ 00017 // $Date: 2010/08/09 $ 00018 // $State$ 00019 // ***************************************************************************** 00020 // ***************************************************************************** 00021 00022 00023 00024 #if !defined(oaTechDBTypes_P) 00025 #define oaTechDBTypes_P 00026 00027 00028 00029 // ***************************************************************************** 00030 // Nested includes 00031 // ***************************************************************************** 00032 #include "oaString.h" 00033 00034 00035 00036 // ***************************************************************************** 00037 // Declare and define types in the OpenAccess namespace. 00038 // ***************************************************************************** 00039 BEGIN_OA_NAMESPACE 00040 00041 00042 00043 // ***************************************************************************** 00044 // Windows DLL export macros 00045 // ***************************************************************************** 00046 #if defined(OA_WINDOWS) && defined(OA_TECH_DLL_EXPORTS) 00047 #define OA_TECH_DLL_API __declspec(dllexport) 00048 #define OA_TECH_DLL_PVT __declspec(dllexport) 00049 #define OA_TECH_DLL_EXTERN 00050 #elif defined(OA_WINDOWS) && !defined(OA_STATIC) 00051 #define OA_TECH_DLL_API __declspec(dllimport) 00052 #define OA_TECH_DLL_PVT __declspec(dllimport) 00053 #define OA_TECH_DLL_EXTERN extern 00054 #else 00055 #define OA_TECH_DLL_API 00056 #define OA_TECH_DLL_PVT 00057 #endif 00058 00059 00060 00061 // ***************************************************************************** 00062 // Typedefs 00063 // ***************************************************************************** 00064 typedef unsigned int oaLayerNum; 00065 typedef unsigned int oaPurposeNum; 00066 00067 00068 00069 // ***************************************************************************** 00070 // Constants 00071 // ***************************************************************************** 00072 #define oacAnyLayerNum oacNullIndex 00073 00074 00075 00076 // ***************************************************************************** 00077 // oaTechDataTypeEnum 00078 // 00079 // The first several entries are for the database itself and for data types with 00080 // a variable number of tables. These entries should not be included in the 00081 // number of data types. The entries between 0 and oavBaseNumDataTypes are 00082 // common to all databases and must match oaBaseDataTypeEnum. Note that the 00083 // dataID array for the dataTbls--oaTechData::techDataTblIDs--should match this 00084 // array. 00085 // ***************************************************************************** 00086 #define oavNumTechDataTypes 33 00087 #define oavNumNewTechDataTypes 14 00088 00089 enum oaTechDataTypeEnum { 00090 oacTechDataType = UINT_MAX, 00091 oacTechAppObjectDataType = UINT_MAX - 1, 00092 00093 oacTechPropDataType = 0, 00094 oacTechGroupDataType = 1, 00095 oacTechGroupMemDataType = 2, 00096 oacTechAvatarDataType = 3, 00097 oacTechValueDataType = 4, 00098 oacTechConstraintParamDefDataType = 5, 00099 oacTechConstraintParamDataType = 6, 00100 oacTechConstraintDefDataType = 7, 00101 oacTechConstraintDataType = 8, 00102 oacTechConstraintGroupDataType = 9, 00103 oacTechConstraintGroupMemDataType = 10, 00104 oacTechConstraintGroupHeaderDataType = 11, 00105 00106 oacLayerDataType = 12, 00107 oacPurposeDataType = 13, 00108 oacSiteDefDataType = 14, 00109 oacViaDefDataType = 15, 00110 oacOpPointDataType = 16, 00111 oacAnalysisLibDataType = 17, 00112 oacViaSpecDataType = 18, 00113 oacTechFeatureDataType = 19, 00114 oacTechFeaturePolicyDataType = 20, 00115 oacTechHeaderDataType = 21, 00116 oacTechLayerHeaderDataType = 22, 00117 oacTechViaDefHeaderDataType = 23, 00118 oacTechDerivedLayerParamDefDataType = 24, 00119 oacTechDerivedLayerParamDataType = 25, 00120 oacTechDerivedLayerDefDataType = 26, 00121 oacTechGroupDefDataType = 27, 00122 oacTechConstraintGroupDefDataType = 28, 00123 00124 oacTechParamDataType = 29, 00125 oacTechViaVariantDataType = 30, 00126 oacTechViaVariantHeaderDataType = 31, 00127 00128 oacTechViaParamDataType = 32 00129 }; 00130 00131 00132 00133 // ***************************************************************************** 00134 // oaTechDataType 00135 // ***************************************************************************** 00136 class OA_TECH_DLL_API oaTechDataType { 00137 public: 00138 oaTechDataType(oaTechDataTypeEnum valueIn); 00139 oaTechDataType(const oaString &name); 00140 ~oaTechDataType(); 00141 00142 const oaString &getName() const; 00143 00144 operator oaTechDataTypeEnum() const; 00145 00146 private: 00147 static const oaString *initNames(); 00148 00149 oaTechDataTypeEnum value; 00150 00151 static const oaString names[]; 00152 static const oaString varNames[]; 00153 }; 00154 00155 00156 00157 // ***************************************************************************** 00158 // Forward Private Class Declarations 00159 // ***************************************************************************** 00160 class oaTechData; 00161 class oaTechDataArray; 00162 class oaTechDataTbl; 00163 class oaNamedTechDataTbl; 00164 class oaTechConstraintGroupTbl; 00165 class oaTechConstraintTbl; 00166 class oaTechHashTbl; 00167 class oaLayerTbl; 00168 class oaPurposeTbl; 00169 class oaSiteDefTbl; 00170 class oaViaDefTbl; 00171 class oaViaSpecTbl; 00172 class oaViaVariantTbl; 00173 class oaViaVariantHeaderTbl; 00174 class oaTechViaVariantTbl; 00175 class oaOpPointTbl; 00176 class oaAnalysisLibTbl; 00177 class oaTechCacheTbl; 00178 class oaParamTbl; 00179 class oaViaParamTbl; 00180 class oaTechViaParamTbl; 00181 class oaTechParamTbl; 00182 class oaDerivedLayerDefTbl; 00183 class oaDerivedLayerParamDefTbl; 00184 class oaDerivedLayerParamTbl; 00185 class oaDerivedLayerCacheTbl; 00186 class oaSizedLayerHashTbl; 00187 class oaViaSpecHashTbl; 00188 class oaTechHeaderTbl; 00189 class oaTechLayerHeaderTbl; 00190 class oaTechConflictObserverMgr; 00191 class oaTechStdViaDefNameParamHashTbl; 00192 class oaTechCustomViaDefNameParamHashTbl; 00193 class oaTechUndoObserverPvt; 00194 00195 00196 00197 // ***************************************************************************** 00198 // Forward Public Class Declarations 00199 // ***************************************************************************** 00200 class oaTech; 00201 class oaTechHeader; 00202 class oaTechLayerHeader; 00203 class oaTechViaDefHeader; 00204 class oaTechLibObserver; 00205 class oaLayer; 00206 class oaPhysicalLayer; 00207 class oaPurpose; 00208 class oaPurposeType; 00209 class oaSiteDef; 00210 class oaViaDef; 00211 class oaStdViaDef; 00212 class oaCustomViaDef; 00213 class oaViaSpec; 00214 class oaOpPoint; 00215 class oaAnalysisLib; 00216 class oaUserUnitsType; 00217 class oaRowHeader; 00218 class oaViaHeader; 00219 class oaViaParam; 00220 class oaDesign; 00221 class oaOpPointHeader; 00222 class oaBlock; 00223 class oaLayerConstraint; 00224 class oaLayerPairConstraint; 00225 class oaLayerArrayConstraint; 00226 class oaDerivedLayerDef; 00227 class oaDerivedLayerParamDef; 00228 class oaDerivedLayerParam; 00229 class oaViaVariant; 00230 class oaViaVariantHeader; 00231 class oaTechViaVariantHeader; 00232 00233 00234 00235 // ***************************************************************************** 00236 // Initialization Function Declaration 00237 // ***************************************************************************** 00238 OA_TECH_DLL_API extern void 00239 oaTechInit(oaUInt4 apiMajorRev = oacAPIMajorRevNumber, 00240 oaUInt4 apiMinorRev = oacAPIMinorRevNumber); 00241 00242 OA_TECH_DLL_API extern void 00243 oaTechInit(oaUInt4 apiMajorRev, 00244 oaUInt4 apiMinorRev, 00245 oaUInt4 dataModelRev); 00246 00247 00248 00249 END_OA_NAMESPACE 00250 00251 #endif
Copyright © 2002 - 2010 Cadence Design Systems, Inc.
All Rights Reserved.