oaOccInstTerm.h

Go to the documentation of this file.
00001 // *****************************************************************************
00002 // *****************************************************************************
00003 // oaOccInstTerm.h
00004 //
00005 // This file contains the definition for the oaOccInstTerm class. The
00006 // oaOccInstTerm class is an object for managing all types of connections
00007 // between a net and a terminal of an instance in the occurrence domain.
00008 //
00009 // *****************************************************************************
00010 // Except as specified in the OpenAccess terms of use of Cadence or Silicon
00011 // Integration Initiative, this material may not be copied, modified,
00012 // re-published, uploaded, executed, or distributed in any way, in any medium,
00013 // in whole or in part, without prior written permission from Cadence.
00014 //
00015 //                Copyright 2003-2005 Cadence Design Systems, Inc.
00016 //                           All Rights Reserved.
00017 //
00018 //  $Author: icftcm $
00019 //  $Revision: #1 $
00020 //  $Date: 2010/08/09 $
00021 //  $State: Exp $
00022 // *****************************************************************************
00023 // *****************************************************************************
00024 
00025 
00026 
00027 #if !defined(oaOccInstTerm_P)
00028 #define oaOccInstTerm_P
00029 
00030 
00031 
00032 // *****************************************************************************
00033 // Nested includes
00034 // *****************************************************************************
00035 #include "oaInstTerm.h"
00036 #include "oaModInstTerm.h"
00037 #include "oaModTerm.h"
00038 #include "oaOccInst.h"
00039 #include "oaOccNet.h"
00040 
00041 
00042 
00043 // *****************************************************************************
00044 // Declare and define types in the OpenAccess namespace.
00045 // *****************************************************************************
00046 BEGIN_OA_NAMESPACE
00047 
00048 
00049 
00050 // *****************************************************************************
00051 // oaOccInstTerm
00052 // *****************************************************************************
00053 class OA_DESIGN_DLL_API oaOccInstTerm : public oaOccObject {
00054 public:
00055     static oaOccInstTerm    *find(const oaOccInst   *inst,
00056                                   const oaOccTerm   *term);
00057     static oaOccInstTerm    *find(const oaOccInst   *inst,
00058                                   const oaModTerm   *term);
00059     static oaOccInstTerm    *find(const oaOccInst   *inst,
00060                                   const oaTerm      *term);
00061     static oaOccInstTerm    *find(const oaOccInst   *inst,
00062                                   const oaName      &termName);
00063     static oaOccInstTerm    *find(const oaOccInst   *inst,
00064                                   oaUInt4           termPosition);
00065     static oaOccInstTerm    *find(const oaOccInst   *inst,
00066                                   const oaOccTerm   *term,
00067                                   oaDomain          domain);
00068     static oaOccInstTerm    *find(const oaOccInst   *inst,
00069                                   const oaName      &termName,
00070                                   oaDomain          domain);
00071     static oaOccInstTerm    *find(const oaOccInst   *inst,
00072                                   oaUInt4           termPosition,
00073                                   oaDomain          domain);
00074 
00075     oaOccInstTerm           *getBit(oaUInt4 bitIndex) const;
00076     oaOccNet                *getNet(oaBoolean preferred = false) const;
00077     oaOccInst               *getInst() const;
00078 
00079     oaOccTerm               *getTerm(oaBoolean expand = true) const;
00080     oaOccTerm               *getTerm(oaBoolean  expand,
00081                                      oaDomain   d) const;
00082 
00083     void                    getTermName(oaName &name) const;
00084     void                    getTermName(const oaNameSpace   &ns,
00085                                         oaString            &name) const;
00086     oaUInt4                 getTermPosition() const;
00087     oaUInt4                 getNumBits() const;
00088 
00089     oaOccNet                *getAssignedNet(oaBoolean ignoreDefault = false) const;
00090     oaOccNet                *getAssignedNet(oaAssignedNetSpec   &spec,
00091                                             oaBoolean           ignoreDefault = false) const;
00092 
00093     oaInstTerm              *getInstTerm() const;
00094     oaModInstTerm           *getModInstTerm() const;
00095 
00096     oaOccInstTerm           *getReflection(oaDomain d) const;
00097 
00098     oaBoolean               isBound() const;
00099     oaBoolean               isBound(oaDomain d) const;
00100     oaBoolean               isImplicit() const;
00101     oaBoolean               usesTermPosition() const;
00102 
00103     enum {dtIndex = oacInstTermDataType};
00104 };
00105 
00106 
00107 
00108 // *****************************************************************************
00109 // Design Traits.
00110 // *****************************************************************************
00111 template<>
00112 class oaTraits<oaOccInstTerm> {
00113 public:
00114     typedef oaOccObject             parentType;
00115     typedef oaInstTermModTypeEnum   modTypeType;
00116     enum {domain = oacOccDomain};
00117     enum {isMultiDomain = true};
00118     enum {dbType = oacDesignDBType};
00119     enum {dtIndex = oacInstTermDataType};
00120     enum {isConcrete = true};
00121     enum {objectTypeEnumVal = oacOccInstTermType};
00122     enum {dataTypeEnumVal = oacInstTermDataType};
00123 };
00124 
00125 
00126 
00127 END_OA_NAMESPACE
00128 
00129 #endif

Return to top of page