00001 // ***************************************************************************** 00002 // ***************************************************************************** 00003 // oaViaVariant.h 00004 // 00005 // This file contains the definitions of the oaViaVariant class and its public 00006 // supporting classes. These classes include: 00007 // 00008 // oaViaVariant 00009 // This class is an abstract base for all types of viaVariants. 00010 // 00011 // oaStdViaVariant 00012 // This class implements a standard via variant. 00013 // 00014 // oaCustomViaVariant 00015 // This class implements a custom via variant. 00016 // 00017 // ***************************************************************************** 00018 // Except as specified in the OpenAccess terms of use of Cadence or Silicon 00019 // Integration Initiative, this material may not be copied, modified, 00020 // re-published, uploaded, executed, or distributed in any way, in any medium, 00021 // in whole or in part, without prior written permission from Cadence. 00022 // 00023 // Copyright 2002-2005 Cadence Design Systems, Inc. 00024 // All Rights Reserved. 00025 // 00026 // $Author: icftcm $ 00027 // $Revision: #1 $ 00028 // $Date: 2010/08/09 $ 00029 // $State: $ 00030 // ***************************************************************************** 00031 // ***************************************************************************** 00032 00033 00034 00035 #if !defined(oaViaVariant_P) 00036 #define oaViaVariant_P 00037 00038 00039 00040 // ***************************************************************************** 00041 // Nested includes 00042 // ***************************************************************************** 00043 #include "oaParam.h" 00044 #include "oaViaDef.h" 00045 00046 00047 00048 // ***************************************************************************** 00049 // Declare and define types in the OpenAccess namespace. 00050 // ***************************************************************************** 00051 BEGIN_OA_NAMESPACE 00052 00053 00054 00055 // ***************************************************************************** 00056 // oaViaVariant 00057 // ***************************************************************************** 00058 class OA_TECH_DLL_API oaViaVariant : public oaObject { 00059 public: 00060 static oaViaVariant *find(const oaObject *owner, 00061 const oaString &name, 00062 oaBoolean local = false); 00063 00064 void destroy(); 00065 00066 void getName(oaString &name) const; 00067 oaViaDef *getViaDef() const; 00068 void getViaDefName(oaString &name) const; 00069 00070 enum {dtIndex = oacBaseViaVariantDataType}; 00071 }; 00072 00073 00074 00075 // ***************************************************************************** 00076 // oaStdViaVariant 00077 // ***************************************************************************** 00078 class OA_TECH_DLL_API oaStdViaVariant : public oaViaVariant { 00079 public: 00080 static oaStdViaVariant *create(oaObject *owner, 00081 const oaString &name, 00082 const oaStdViaDef *viaDef, 00083 const oaViaParam ¶ms); 00084 00085 static oaStdViaVariant *find(const oaObject *owner, 00086 const oaStdViaDef *viaDef, 00087 const oaViaParam ¶ms, 00088 oaBoolean local = false); 00089 00090 void getParams(oaViaParam ¶ms) const; 00091 }; 00092 00093 00094 00095 // ***************************************************************************** 00096 // oaCustomViaVariant 00097 // ***************************************************************************** 00098 class OA_TECH_DLL_API oaCustomViaVariant : public oaViaVariant { 00099 public: 00100 static oaCustomViaVariant *create(oaObject *owner, 00101 const oaString &name, 00102 const oaCustomViaDef *viaDef, 00103 const oaParamArray ¶ms); 00104 00105 static oaCustomViaVariant *find(const oaObject *owner, 00106 const oaCustomViaDef *viaDef, 00107 const oaParamArray ¶ms, 00108 oaBoolean local = false); 00109 00110 void getParams(oaParamArray ¶ms) const; 00111 }; 00112 00113 00114 00115 // ***************************************************************************** 00116 // Tech Objects derived from oaObject 00117 // ***************************************************************************** 00118 template<> 00119 class oaTraits<oaViaVariant> { 00120 public: 00121 typedef oaObject parentType; 00122 typedef oaViaVariantModTypeEnum modTypeType; 00123 typedef oaViaVariantTbl tblType; 00124 enum {domain = oacNoDomain}; 00125 enum {isMultiDomain = false}; 00126 enum {isConcrete = false}; 00127 enum {dbType = oacBaseDBType}; 00128 enum {dtIndex = oacBaseViaVariantDataType}; 00129 enum {dataTypeEnumVal = oacBaseViaVariantDataType}; 00130 enum {abstractTypeEnumVal = oacViaVariantType}; 00131 }; 00132 00133 template<> 00134 class oaTraits<oaStdViaVariant> { 00135 public: 00136 typedef oaViaVariantModTypeEnum modTypeType; 00137 typedef oaViaVariantTbl tblType; 00138 typedef oaViaVariant parentType; 00139 enum {dtIndex = oacBaseViaVariantDataType}; 00140 enum {dataTypeEnumVal = oacBaseViaVariantDataType}; 00141 enum {abstractTypeEnumVal = oacViaVariantType}; 00142 enum {domain = oacNoDomain}; 00143 enum {isMultiDomain = false}; 00144 enum {dbType = oacBaseDBType}; 00145 enum {isConcrete = true}; 00146 enum {objectTypeEnumVal = oacStdViaVariantType}; 00147 }; 00148 00149 template<> 00150 class oaTraits<oaCustomViaVariant> { 00151 public: 00152 typedef oaViaVariantModTypeEnum modTypeType; 00153 typedef oaViaVariantTbl tblType; 00154 typedef oaViaVariant parentType; 00155 enum {dtIndex = oacBaseViaVariantDataType}; 00156 enum {dataTypeEnumVal = oacBaseViaVariantDataType}; 00157 enum {abstractTypeEnumVal = oacViaVariantType}; 00158 enum {domain = oacNoDomain}; 00159 enum {isMultiDomain = false}; 00160 enum {dbType = oacBaseDBType}; 00161 enum {isConcrete = true}; 00162 enum {objectTypeEnumVal = oacCustomViaVariantType}; 00163 }; 00164 00165 00166 00167 END_OA_NAMESPACE 00168 00169 #endif
Copyright © 2002 - 2010 Cadence Design Systems, Inc.
All Rights Reserved.