00001 // ***************************************************************************** 00002 // ***************************************************************************** 00003 // oaFeature.h 00004 // 00005 // This file contains the definitions for the public classes that support the 00006 // oaFeature and feature-based compatiblity concept. These classes include: 00007 // 00008 // oaFeature 00009 // A class representing OA feature. A feature is a session object that 00010 // represents a portion of the OA data model which is supported by the 00011 // current release of OA software, or by future release of OA software as 00012 // OA data model evolves. 00013 // 00014 // ***************************************************************************** 00015 // Except as specified in the OpenAccess terms of use of Cadence or Silicon 00016 // Integration Initiative, this material may not be copied, modified, 00017 // re-published, uploaded, executed, or distributed in any way, in any medium, 00018 // in whole or in part, without prior written permission from Cadence. 00019 // 00020 // Copyright 2002-2005 Cadence Design Systems, Inc. 00021 // All Rights Reserved. 00022 // 00023 // $Author: icftcm $ 00024 // $Revision: #1 $ 00025 // $Date: 2010/08/09 $ 00026 // $State: Exp $ 00027 // ***************************************************************************** 00028 // ***************************************************************************** 00029 00030 00031 00032 #if !defined(oaFeature_P) 00033 #define oaFeature_P 00034 00035 00036 00037 // ***************************************************************************** 00038 // Nested includes 00039 // ***************************************************************************** 00040 #include "oaSessionObject.h" 00041 00042 00043 00044 // ***************************************************************************** 00045 // Declare and define types in the OpenAccess namespace. 00046 // ***************************************************************************** 00047 BEGIN_OA_NAMESPACE 00048 00049 00050 00051 // ***************************************************************************** 00052 // oaFeatureIDEnum 00053 // ***************************************************************************** 00054 enum oaFeatureIDEnum { 00055 oacHugeDatabaseFeatureID = 0, 00056 00057 oacFigGroupFeatureID = 1, 00058 oacReferenceToFigGroupFeatureID = 2, 00059 oacDefaultConstraintGroupFeatureID = 3, 00060 oacNewMaterialTypeEnumFeatureID = 4, 00061 oacConstraintIDDataFeatureID = 5, 00062 oacConstraintDescriptionDataFeatureID = 6, 00063 oacTechGateGroundedDataFeatureID = 7, 00064 oacNewConstraintOfExistingTypeInRev1FeatureID = 8, 00065 oacLayerArrayConstraintTypeFeatureID = 9, 00066 oacNewConstraintParamInRev1FeatureID = 10, 00067 oacModifiedConstraintInRev1FeatureID = 11, 00068 oacNewValueTypeInRev1FeatureID = 12, 00069 oacDerivedLayerParamFeatureID = 13, 00070 oacNewDerivedLayerFeatureID = 14, 00071 oacReferenceToDerivedLayerParamFeatureID = 15, 00072 00073 oacIncrementalTechFeatureID = 16, 00074 00075 oacTechProcessFamilyInRev4FeatureID = 17, 00076 oacLayerExclusionInRev4FeatureID = 18, 00077 oacPurposeAwareConstraintInRev4TechFeatureID = 19, 00078 oacPurposeAwareConstraintInRev4DesignFeatureID = 20, 00079 oacLayerDerivedFromPurposeInRev4FeatureID = 21, 00080 oacNewReservedPurposeInRev4TechFeatureID = 22, 00081 oacNewReservedPurposeInRev4DesignFeatureID = 23, 00082 oacNewValueTypeInRev4FeatureID = 24, 00083 oacNewConstraintInRev4FeatureID = 25, 00084 oacNewConstraintParamInRev4FeatureID = 26, 00085 oacModifiedConstraintInRev4FeatureID = 27, 00086 oacNewPinTypeInRev4FeatureID = 28, 00087 oacNewBlockageSpacingInRev4FeatureID = 29, 00088 oacNewBlockageSoftInRev4FeatureID = 30, 00089 oacNewBlockageExceptPGNetInRev4FeatureID = 31, 00090 oacModifiedDensityInRev4FeatureID = 32, 00091 oacGroupDefInRev4FeatureID = 33, 00092 oacConstraintGroupDefInRev4FeatureID = 34, 00093 oacViaVariantInRev4TechFeatureID = 35, 00094 oacViaVariantInRev4DesignFeatureID = 36, 00095 oacLayerRangeBlockageInRev4FeatureID = 37, 00096 oacLayerRangeHaloInRev4FeatureID = 38, 00097 oacConstraintGroupOperatorInRev4FeatureID = 39, 00098 oacModifiedConstraintParamInRev4FeatureID = 40 00099 }; 00100 00101 00102 00103 // ***************************************************************************** 00104 // oaFeature 00105 // ***************************************************************************** 00106 class OA_BASE_DLL_API oaFeature : public oaSessionObject { 00107 public: 00108 oaUInt4 getID() const; 00109 void getName(oaString &name) const; 00110 oaDBType getDBType() const; 00111 oaDomain getDomain() const; 00112 oaCategory getCategory() const; 00113 oaType getObjectType() const; 00114 oaDataModelModType getDataModelModType() const; 00115 oaUInt2 getDataModelRev() const; 00116 }; 00117 00118 00119 00120 // ***************************************************************************** 00121 // Traits 00122 // ***************************************************************************** 00123 template<> 00124 class oaTraits<oaFeature> { 00125 public: 00126 typedef oaSessionObject parentType; 00127 enum {domain = oacNoDomain}; 00128 enum {isMultiDomain = false}; 00129 enum {dbType = oacBaseDBType}; 00130 enum {isConcrete = true}; 00131 enum {objectTypeEnumVal = oacFeatureType}; 00132 }; 00133 00134 00135 00136 END_OA_NAMESPACE 00137 00138 #endif 00139
Copyright © 2002 - 2010 Cadence Design Systems, Inc.
All Rights Reserved.