00001 // ***************************************************************************** 00002 // ***************************************************************************** 00003 // oaOccurrence.h 00004 // 00005 // This file contains the definition for the oaOccurrence class and its public 00006 // supporting classes. The oaOccurrence class is the main object for storing 00007 // information about the occurrence level of hierarchy in a design. It 00008 // implements methods for accessing information within that occurrence. There 00009 // are zero or one top occurrence objects in a design. 00010 00011 // 00012 // ***************************************************************************** 00013 // Except as specified in the OpenAccess terms of use of Cadence or Silicon 00014 // Integration Initiative, this material may not be copied, modified, 00015 // re-published, uploaded, executed, or distributed in any way, in any medium, 00016 // in whole or in part, without prior written permission from Cadence. 00017 // 00018 // Copyright 2003-2005 Cadence Design Systems, Inc. 00019 // All Rights Reserved. 00020 // 00021 // $Author: icftcm $ 00022 // $Revision: #1 $ 00023 // $Date: 2010/08/09 $ 00024 // $State: Exp $ 00025 // ***************************************************************************** 00026 // ***************************************************************************** 00027 00028 00029 00030 #if !defined(oaOccurrence_P) 00031 #define oaOccurrence_P 00032 00033 00034 00035 // ***************************************************************************** 00036 // Nested includes 00037 // ***************************************************************************** 00038 #include "oaModule.h" 00039 #include "oaOccObject.h" 00040 00041 00042 00043 // ***************************************************************************** 00044 // Declare and define types in the OpenAccess namespace. 00045 // ***************************************************************************** 00046 BEGIN_OA_NAMESPACE 00047 00048 00049 00050 // ***************************************************************************** 00051 // oaOccurrence 00052 // ***************************************************************************** 00053 class OA_DESIGN_DLL_API oaOccurrence : public oaOccObject { 00054 public: 00055 void destroy(); 00056 00057 oaBlock *getBlock() const; 00058 oaModule *getModule() const; 00059 oaOccInst *getOccInst() const; 00060 void getTermsByPosition(oaOccTermArray &array) const; 00061 00062 oaOccurrence *uniquify(); 00063 oaOccurrence *uniquify(const oaScalarName &modName); 00064 00065 oaCollection<oaOccAssignment, oaOccurrence> getAssignments() const; 00066 oaCollection<oaOccBusNetDef, oaOccurrence> getBusNetDefs() const; 00067 oaCollection<oaOccBusTermDef, oaOccurrence> getBusTermDefs() const; 00068 oaCollection<oaOccConnectDef, oaOccurrence> getConnectDefs() const; 00069 oaCollection<oaOccModuleInstHeader, oaOccurrence> getModuleInstHeaders() const; 00070 oaCollection<oaOccInst, oaOccurrence> getInsts(oaUInt4 filterFlags = oacInstIterNotImplicit) const; 00071 oaCollection<oaOccInstTerm, oaOccurrence> getInstTerms(oaUInt4 filterFlags = oacInstTermIterNotImplicit) const; 00072 oaCollection<oaOccNet, oaOccurrence> getNets(oaUInt4 filterFlags 00073 = oacNetIterAll 00074 | oacNetIterNotImplicit) const; 00075 oaCollection<oaOccTerm, oaOccurrence> getTerms(oaUInt4 filterFlags 00076 = oacTermIterAllNotHidden 00077 | oacTermIterNotImplicit) const; 00078 oaCollection<oaOccVectorInstDef, oaOccurrence> getVectorInstDefs() const; 00079 00080 enum {dtIndex = oacOccurrenceDataType}; 00081 }; 00082 00083 00084 00085 // ***************************************************************************** 00086 // Design Traits. 00087 // ***************************************************************************** 00088 template<> 00089 class oaTraits<oaOccurrence> { 00090 public: 00091 typedef oaOccObject parentType; 00092 typedef oaOccurrenceModTypeEnum modTypeType; 00093 enum {domain = oacOccDomain}; 00094 enum {isMultiDomain = true}; 00095 enum {dbType = oacDesignDBType}; 00096 enum {dtIndex = oacOccurrenceDataType}; 00097 enum {isConcrete = true}; 00098 enum {objectTypeEnumVal = oacOccurrenceType}; 00099 enum {dataTypeEnumVal = oacOccurrenceDataType}; 00100 }; 00101 00102 00103 00104 END_OA_NAMESPACE 00105 00106 #endif
Copyright © 2002 - 2010 Cadence Design Systems, Inc.
All Rights Reserved.