00001 // ***************************************************************************** 00002 // ***************************************************************************** 00003 // oaLayer.h 00004 // 00005 // This file contains the definition for the oaLayer class. 00006 // 00007 // oaLayer 00008 // The oaLayer class is an abstract base class for all types of layers. 00009 // 00010 // oaLayerNameArray 00011 // A utility class for storing set of layer names. 00012 // 00013 // ***************************************************************************** 00014 // Except as specified in the OpenAccess terms of use of Cadence or Silicon 00015 // Integration Initiative, this material may not be copied, modified, 00016 // re-published, uploaded, executed, or distributed in any way, in any medium, 00017 // in whole or in part, without prior written permission from Cadence. 00018 // 00019 // Copyright 2002-2005 Cadence Design Systems, Inc. 00020 // All Rights Reserved. 00021 // 00022 // $Author: icftcm $ 00023 // $Revision: #1 $ 00024 // $Date: 2010/08/09 $ 00025 // $State: Exp $ 00026 // ***************************************************************************** 00027 // ***************************************************************************** 00028 00029 00030 00031 #if !defined(oaLayer_P) 00032 #define oaLayer_P 00033 00034 00035 00036 // ***************************************************************************** 00037 // Nested includes 00038 // ***************************************************************************** 00039 #include "oaTech.h" 00040 00041 00042 00043 // ***************************************************************************** 00044 // Declare and define types in the OpenAccess namespace. 00045 // ***************************************************************************** 00046 BEGIN_OA_NAMESPACE 00047 00048 00049 00050 // ***************************************************************************** 00051 // oaLayer 00052 // ***************************************************************************** 00053 class OA_TECH_DLL_API oaLayer : public oaTechObject { 00054 public: 00055 static oaLayer *find(const oaTech *tech, 00056 const oaString &name); 00057 static oaLayer *find(const oaTech *tech, 00058 oaLayerNum number); 00059 static oaLayer *find(const oaTech *tech, 00060 const oaString &name, 00061 oaBoolean local); 00062 static oaLayer *find(const oaTech *tech, 00063 oaLayerNum number, 00064 oaBoolean local); 00065 00066 void destroy(); 00067 00068 oaLayerNum getNumber() const; 00069 void getName(oaString &name) const; 00070 00071 oaValue *getPeakACCurrentDensity() const; 00072 oaValue *getAvgACCurrentDensity() const; 00073 oaValue *getRmsACCurrentDensity() const; 00074 oaValue *getAvgDCCurrentDensity() const; 00075 00076 void setNumber(oaLayerNum number); 00077 void setName(const oaString &name); 00078 00079 void setPeakACCurrentDensity(oaValue *value); 00080 void setAvgACCurrentDensity(oaValue *value); 00081 void setRmsACCurrentDensity(oaValue *value); 00082 void setAvgDCCurrentDensity(oaValue *value); 00083 00084 enum {dtIndex = oacLayerDataType}; 00085 }; 00086 00087 00088 00089 // ***************************************************************************** 00090 // oaTech traits 00091 // ***************************************************************************** 00092 template<> 00093 class oaTraits<oaLayer> { 00094 public: 00095 typedef oaTechObject parentType; 00096 typedef oaLayerModTypeEnum modTypeType; 00097 enum {dbType = oacTechDBType}; 00098 enum {domain = oacNoDomain}; 00099 enum {isMultiDomain = false}; 00100 enum {isConcrete = false}; 00101 enum {dtIndex = oacLayerDataType}; 00102 enum {dataTypeEnumVal = oacLayerDataType}; 00103 enum {abstractTypeEnumVal = oacLayerType}; 00104 }; 00105 00106 00107 00108 END_OA_NAMESPACE 00109 00110 #endif
Copyright © 2002 - 2010 Cadence Design Systems, Inc.
All Rights Reserved.