oaWaferDBTypes.h

Go to the documentation of this file.
00001 // *****************************************************************************
00002 // *****************************************************************************
00003 // oaWaferDBTypes.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 2004-2005 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(oaWaferDBTypes_P)
00026 #define oaWaferDBTypes_P
00027 
00028 
00029 
00030 // *****************************************************************************
00031 // Nested includes
00032 // *****************************************************************************
00033 #include "oaString.h"
00034 
00035 
00036 
00037 // *****************************************************************************
00038 // Declare and define types in the OpenAccess namespace.
00039 // *****************************************************************************
00040 BEGIN_OA_NAMESPACE
00041 
00042 
00043 
00044 // *****************************************************************************
00045 // Windows DLL export macros
00046 // *****************************************************************************
00047 #if defined(OA_WINDOWS) && defined(OA_WAFER_DLL_EXPORTS)
00048 #define OA_WAFER_DLL_API __declspec(dllexport)
00049 #define OA_WAFER_DLL_PVT __declspec(dllexport)
00050 #define OA_WAFER_DLL_EXTERN
00051 #elif defined(OA_WINDOWS) && !defined(OA_STATIC)
00052 #define OA_WAFER_DLL_API __declspec(dllimport)
00053 #define OA_WAFER_DLL_PVT __declspec(dllimport)
00054 #define OA_WAFER_DLL_EXTERN extern
00055 #else
00056 #define OA_WAFER_DLL_API
00057 #define OA_WAFER_DLL_PVT
00058 #endif
00059 
00060 
00061 
00062 // *****************************************************************************
00063 // oaWaferDataTypeEnum    
00064 //
00065 // The first several entries are for the database itself and for data types with
00066 // a variable number of tables. These entries should not be included in the
00067 // number of data types.  The entries between 0 and oavBaseNumDataTypes are
00068 // common to all databases and must match oaBaseDataTypeEnum. Note that the 
00069 // dataIDs array for dataTbls--oaWaferData::waferDataTblIDs--should match this
00070 // array.
00071 // *****************************************************************************
00072 #define oavNumWaferDataTypes        25
00073 #define oavNumNewWaferDataTypes     2
00074 
00075 enum oaWaferDataTypeEnum {
00076     oacWaferWaferDataType                   = UINT_MAX,
00077     oacAppObjectWaferDataType               = UINT_MAX - 1,
00078     oacPropWaferDataType                    = 0,
00079     oacGroupWaferDataType                   = 1,
00080     oacGroupMemWaferDataType                = 2,
00081     oacAvatarWaferDataType                  = 3,
00082     oacValueWaferDataType                   = 4,
00083     oacConstraintParamDefWaferDataType      = 5,
00084     oacConstraintParamWaferDataType         = 6,
00085     oacConstraintDefWaferDataType           = 7,
00086     oacConstraintWaferDataType              = 8,
00087     oacConstraintGroupWaferDataType         = 9,
00088     oacConstraintGroupMemWaferDataType      = 10,
00089     oacConstraintGroupHeaderWaferDataType   = 11,
00090 
00091     oacWaferDescWaferDataType               = 12,
00092     oacFrameWaferDataType                   = 13,
00093     oacReticleWaferDataType                 = 14,
00094     oacReticleRefWaferDataType              = 15,
00095     oacStepperMapWaferDataType              = 16,
00096     oacImageWaferDataType                   = 17,
00097     oacFrameInstWaferDataType               = 18,
00098     oacDesignInstWaferDataType              = 19,
00099     oacWaferFeatureWaferDataType            = 20,
00100     oacFeatureWaferDataType                 = 21,
00101     oacFeaturePolicyWaferDataType           = 22,
00102     oacGroupDefWaferDataType                = 23,
00103     oacConstraintGroupDefWaferDataType      = 24
00104 };
00105 
00106 
00107 
00108 // *****************************************************************************
00109 // oaWaferDataType
00110 // *****************************************************************************
00111 class OA_WAFER_DLL_API oaWaferDataType {
00112 public:
00113                             oaWaferDataType(oaWaferDataTypeEnum valueIn);
00114                             oaWaferDataType(const oaString &name);
00115                             ~oaWaferDataType();
00116 
00117     const oaString          &getName() const;
00118 
00119                             operator                oaWaferDataTypeEnum() const;
00120 
00121 private:
00122     static const oaString   *initNames();
00123     static const oaString   *initVarNames();
00124 
00125     oaWaferDataTypeEnum     value;
00126 
00127     static const oaString   names[];
00128     static const oaString   varNames[];
00129 };
00130 
00131 
00132 
00133 // *****************************************************************************
00134 // Forward Private Class Declarations
00135 // *****************************************************************************
00136 class oaWaferHashTbl;
00137 class oaWaferStaticVarMemory;
00138 
00139 
00140 
00141 // *****************************************************************************
00142 // Forward Public Class Declarations
00143 // *****************************************************************************
00144 class oaWafer;
00145 class oaWaferLibObserver;
00146 class oaWaferDesc;
00147 class oaWaferFeature;
00148 class oaFrame;
00149 class oaReticle;
00150 class oaReticleRef;
00151 class oaStepperMap;
00152 class oaImage;
00153 class oaFrameInst;
00154 class oaDesignInst;
00155 
00156 
00157 
00158 // *****************************************************************************
00159 // Initialization Function Declaration
00160 // *****************************************************************************
00161 OA_WAFER_DLL_API extern void
00162 oaWaferInit(oaUInt4 apiMajorRev = oacAPIMajorRevNumber,
00163             oaUInt4 apiMinorRev = oacAPIMinorRevNumber);
00164 
00165 OA_WAFER_DLL_API extern void
00166 oaWaferInit(oaUInt4 apiMajorRev,
00167             oaUInt4 apiMinorRev,
00168             oaUInt4 dataModelRev);
00169 
00170 
00171 
00172 END_OA_NAMESPACE
00173 
00174 
00175 
00176 #endif

Return to top of page