oaFeature.h

Go to the documentation of this file.
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 

Return to top of page