00001 // ***************************************************************************** 00002 // ***************************************************************************** 00003 // oaConstraintGroupDef.h 00004 // 00005 // This file contains the definitions for the following classes: 00006 // oaConstraintGroupDef 00007 // 00008 // ***************************************************************************** 00009 // Except as specified in the OpenAccess terms of use of Cadence or Silicon 00010 // Integration Initiative, this material may not be copied, modified, 00011 // re-published, uploaded, executed, or distributed in any way, in any medium, 00012 // in whole or in part, without prior written permission from Cadence. 00013 // 00014 // Copyright 2006 Cadence Design Systems, Inc. 00015 // All Rights Reserved. 00016 // 00017 // $Author: dell $ 00018 // $Revision: #1 $ 00019 // $Date: 2006/12/20 $ 00020 // $State: Exp $ 00021 // ***************************************************************************** 00022 // ***************************************************************************** 00023 00024 00025 00026 #if !defined(oaConstraintGroupDef_P) 00027 #define oaConstraintGroupDef_P 00028 00029 00030 00031 // ***************************************************************************** 00032 // Nested includes 00033 // ***************************************************************************** 00034 #include "oaCommonTypes.h" 00035 #include "oaBaseTypes.h" 00036 #include "oaBaseModTypes.h" 00037 #include "oaString.h" 00038 #include "oaType.h" 00039 #include "oaArray.h" 00040 #include "oaDomain.h" 00041 #include "oaObject.h" 00042 #include "oaSessionObject.h" 00043 00044 00045 00046 // ***************************************************************************** 00047 // Declare and define types in the OpenAccess namespace. 00048 // ***************************************************************************** 00049 BEGIN_OA_NAMESPACE 00050 00051 00052 00053 // ***************************************************************************** 00054 // oaConstraintGroupTypeEnum 00055 // ***************************************************************************** 00056 #define oavNumConstraintGroupTypes 11 00057 00058 enum oaConstraintGroupTypeEnum { 00059 oacUserDefinedConstraintGroupType = 0, 00060 oacImplicitConstraintGroupType = 1, 00061 oacDefaultConstraintGroupType = 2, 00062 oacFoundryConstraintGroupType = 3, 00063 oacTaperConstraintGroupType = 4, 00064 oacInputTaperConstraintGroupType = 5, 00065 oacOutputTaperConstraintGroupType = 6, 00066 oacShieldingConstraintGroupType = 7, 00067 oacTransReflexiveConstraintGroupType = 8, 00068 oacReflexiveConstraintGroupType = 9, 00069 oacInterChildConstraintGroupType = 10 00070 }; 00071 00072 00073 00074 // ***************************************************************************** 00075 // oaConstraintGroupType 00076 // ***************************************************************************** 00077 class OA_BASE_DLL_API oaConstraintGroupType { 00078 public: 00079 oaConstraintGroupType(oaConstraintGroupTypeEnum valueIn); 00080 oaConstraintGroupType(const oaString &name); 00081 ~oaConstraintGroupType(); 00082 00083 const oaString &getName() const; 00084 operator oaConstraintGroupTypeEnum() const; 00085 00086 private: 00087 static const oaString *initNames(); 00088 00089 oaConstraintGroupTypeEnum value; 00090 }; 00091 00092 00093 00094 // ***************************************************************************** 00095 // oaConstraintGroupDef 00096 // ***************************************************************************** 00097 class OA_BASE_DLL_API oaConstraintGroupDef : public oaSessionObject { 00098 public: 00099 static oaConstraintGroupDef *create(const oaString &name, 00100 const oaManagedTypeArray &allowedOwners, 00101 const oaSubset<oaDBType> &allowedDatabases, 00102 oaBoolean uniqueInDatabase = false); 00103 static oaConstraintGroupDef *find(const oaString &name); 00104 static oaConstraintGroupDef *get(oaConstraintGroupType type); 00105 00106 void destroy(); 00107 void remove(oaObject *database); 00108 00109 void getName(oaString &name) const; 00110 oaConstraintGroupType getConstraintGroupType() const; 00111 oaBoolean isBuiltIn() const; 00112 oaBoolean isUniqueInDB() const; 00113 void getAllowedOwners(oaManagedTypeArray &allowedOwners) const; 00114 void getAllowedDatabases(oaSubset<oaDBType> &allowedDatabases) const; 00115 00116 enum {dtIndex = oacBaseConstraintGroupDefDataType}; 00117 }; 00118 00119 00120 00121 // ***************************************************************************** 00122 // Traits 00123 // ***************************************************************************** 00124 template<> 00125 class oaTraits<oaConstraintGroupDef> { 00126 public: 00127 typedef oaSessionObject parentType; 00128 typedef oaObjectDefModTypeEnum modTypeType; 00129 enum {domain = oacNoDomain}; 00130 enum {isMultiDomain = false}; 00131 enum {dbType = oacBaseDBType}; 00132 enum {dtIndex = oacBaseConstraintGroupDefDataType}; 00133 enum {isConcrete = true}; 00134 enum {objectTypeEnumVal = oacConstraintGroupDefType}; 00135 enum {dataTypeEnumVal = oacBaseConstraintGroupDefDataType}; 00136 }; 00137 00138 END_OA_NAMESPACE 00139 00140 #endif
Copyright © 2002 - 2010 Cadence Design Systems, Inc.
All Rights Reserved.