oaOccurrence.h

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

Return to top of page