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
Copyright © 2002 - 2010 Cadence Design Systems, Inc.
All Rights Reserved.