oaDerivedLayerParamDef.h

Go to the documentation of this file.
00001 // *****************************************************************************
00002 // *****************************************************************************
00003 // oaDerivedLayerParamDef.h
00004 //
00005 // This file contains the definition for the following classes
00006 //      oaDerivedLayerParamType
00007 //          This is an enum wrapper class for oaDerivedLayerParamTypeEnum. The 
00008 //          enum values are used when creating oaDerivedLayerParamDef class 
00009 //          objects.
00010 //      oaDerivedLayerConnectivityType
00011 //          This is a wrapper class for oaDerivedLayerConnectivityTypeEnum. The 
00012 //          enum values represent the types of connection of shapes to a net.
00013 //      oaDerivedLayerParamDef
00014 //          This class is used to get built in parameters or create user defined 
00015 //          parameters for derived layers. These definitions enforce the values
00016 //          associated with the derived layer parameters.
00017 //
00018 // *****************************************************************************
00019 // Except as specified in the OpenAccess terms of use of Cadence or Silicon
00020 // Integration Initiative, this material may not be copied, modified,
00021 // re-published, uploaded, executed, or distributed in any way, in any medium,
00022 // in whole or in part, without prior written permission from Cadence.
00023 //
00024 //                Copyright 2005 Cadence Design Systems, Inc.
00025 //                           All Rights Reserved.
00026 //
00027 //  $Author: icftcm $
00028 //  $Revision: #1 $
00029 //  $Date: 2010/08/09 $
00030 //  $State: Exp $
00031 // *****************************************************************************
00032 // *****************************************************************************
00033 
00034 
00035 
00036 #if !defined(oaDerivedLayerParamDef_P)
00037 #define oaDerivedLayerParamDef_P
00038 
00039 
00040 
00041 // *****************************************************************************
00042 // Nested includes
00043 // *****************************************************************************
00044 #include "oaTech.h"
00045 
00046 
00047 
00048 // *****************************************************************************
00049 // Declare and define types in the OpenAccess namespace.
00050 // *****************************************************************************
00051 BEGIN_OA_NAMESPACE
00052 
00053 
00054 
00055 // *****************************************************************************
00056 // oaDerivedLayerParamTypeEnum
00057 // *****************************************************************************
00058 #define oavNumDerivedLayerParamTypes  7
00059 
00060 enum oaDerivedLayerParamTypeEnum {
00061     oacConnectivityTypeDerivedLayerParamType        = 0,
00062     oacSelectShapesInRangeDerivedLayerParamType     = 1,
00063     oacRangeDerivedLayerParamType                   = 2,
00064     oacAreaRangeDerivedLayerParamType               = 3,
00065     oacExclusiveDerivedLayerParamType               = 4,
00066     oacDistanceDerivedLayerParamType                = 5,
00067     oacSelectShapesWithPurposeDerivedLayerParamType = 6
00068 };
00069 
00070 
00071 
00072 // *****************************************************************************
00073 // oaDerivedLayerConnectivityTypeEnum
00074 // *****************************************************************************
00075 #define oavNumDerivedLayerConnectivityTypes  3
00076 
00077 enum oaDerivedLayerConnectivityTypeEnum {
00078     oacSameNetDerivedLayerConnectivityType      = 0,
00079     oacDifferentNetDerivedLayerConnectivityType = 1,
00080     oacIgnoreDerivedLayerConnectivityType       = 2
00081 };
00082 
00083 
00084 
00085 // *****************************************************************************
00086 // oaDerivedLayerParamType
00087 // *****************************************************************************
00088 class OA_TECH_DLL_API oaDerivedLayerParamType {
00089 public:
00090                                 oaDerivedLayerParamType(oaDerivedLayerParamTypeEnum valueIn);
00091                                 oaDerivedLayerParamType(const oaString &name);
00092                                 ~oaDerivedLayerParamType();
00093 
00094     const oaString              &getName() const;
00095                                 operator                    oaDerivedLayerParamTypeEnum() const;
00096 
00097 private:
00098     static const oaString       *initNames();
00099 
00100     oaDerivedLayerParamTypeEnum value;
00101 
00102     static const oaString       *names;
00103 };
00104 
00105 
00106 
00107 // *****************************************************************************
00108 // oaDerivedLayerConnectivityType
00109 // *****************************************************************************
00110 class OA_TECH_DLL_API oaDerivedLayerConnectivityType {
00111 public:
00112                                         oaDerivedLayerConnectivityType(oaDerivedLayerConnectivityTypeEnum valueIn);
00113                                         oaDerivedLayerConnectivityType(const oaString &name);
00114                                         ~oaDerivedLayerConnectivityType();
00115 
00116     const oaString                      &getName() const;
00117                                         operator                    oaDerivedLayerConnectivityTypeEnum() const;
00118 
00119 private:
00120     static const oaString               *initNames();
00121 
00122     oaDerivedLayerConnectivityTypeEnum  value;
00123 
00124     static const oaString               *names;
00125 };
00126 
00127 
00128 
00129 // *****************************************************************************
00130 // oaDerivedLayerParamDef
00131 // *****************************************************************************
00132 class OA_TECH_DLL_API oaDerivedLayerParamDef : public oaSessionObject {
00133 public:
00134     static oaDerivedLayerParamDef   *create(const oaString  &name,
00135                                             oaType          valueType);
00136     static oaDerivedLayerParamDef   *get(oaDerivedLayerParamType type);
00137     static oaDerivedLayerParamDef   *find(const oaString &name);
00138 
00139     void                            getName(oaString &name) const;
00140     oaType                          getValueType() const;
00141     oaBoolean                       isBuiltIn() const;
00142 
00143     void                            destroy();
00144     void                            remove(oaTech *tech);
00145 };
00146 
00147 
00148 
00149 // *****************************************************************************
00150 // Tech objects derived from oaSessionObject
00151 // *****************************************************************************
00152 template<>
00153 class oaTraits<oaDerivedLayerParamDef> {
00154 public:
00155     typedef oaSessionObject             parentType;
00156     typedef oaDerivedLayerParamDefTbl   tblType;
00157     enum {domain = oacNoDomain};
00158     enum {isMultiDomain = false};
00159     enum {dbType = oacBaseDBType};
00160     enum {isConcrete = true};
00161     enum {objectTypeEnumVal = oacDerivedLayerParamDefType};
00162 };
00163 
00164 
00165 
00166 #if defined(OA_TECH_DLL_EXTERN)
00167 
00168 OA_TECH_DLL_EXTERN template
00169  class OA_TECH_DLL_API oaCollection<oaDerivedLayerParamDef, oaSession>;
00170 
00171 #endif
00172 
00173 
00174 
00175 END_OA_NAMESPACE
00176 
00177 #endif

Return to top of page