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
Copyright © 2002 - 2010 Cadence Design Systems, Inc.
All Rights Reserved.