00001 // ***************************************************************************** 00002 // ***************************************************************************** 00003 // oaOccBusNetDef.h 00004 // 00005 // This file contains the definition for the oaOccBusNetDef class, which 00006 // implements the definition of a busNet occurrence, including its name and 00007 // bit-range. A busNetDef occurrence is never created by applications. Instead, 00008 // it is automatically created whenever applications create busNets. Since 00009 // multiple busNets can refer to different members of the same busNet 00010 // definition, the busNetDef represents the super-set of all members of the 00011 // busNets. 00012 // 00013 // Implicitly created logical busNet definitions are automatically destroyed 00014 // when the last busNet with the same name is destroyed. Explicitly created 00015 // logical busNet definitions must be explicitly destroyed. An exception will 00016 // be thrown if an attempt is made to destroy an implicitly created logical 00017 // busNet definition. An exception will also be thrown if an attempt is made to 00018 // destroy an explicitly created logical busNet definition that still has 00019 // logical busNets associated with it. 00020 // 00021 // ***************************************************************************** 00022 // Except as specified in the OpenAccess terms of use of Cadence or Silicon 00023 // Integration Initiative, this material may not be copied, modified, 00024 // re-published, uploaded, executed, or distributed in any way, in any medium, 00025 // in whole or in part, without prior written permission from Cadence. 00026 // 00027 // Copyright 2003-2005 Cadence Design Systems, Inc. 00028 // All Rights Reserved. 00029 // 00030 // $Author: icftcm $ 00031 // $Revision: #1 $ 00032 // $Date: 2010/08/09 $ 00033 // $State: Exp $ 00034 // ***************************************************************************** 00035 // ***************************************************************************** 00036 00037 00038 00039 #if !defined(oaOccBusNetDef_P) 00040 #define oaOccBusNetDef_P 00041 00042 00043 00044 // ***************************************************************************** 00045 // Nested includes 00046 // ***************************************************************************** 00047 #include "oaBusNetDef.h" 00048 #include "oaOccurrence.h" 00049 00050 00051 00052 // ***************************************************************************** 00053 // Declare and define types in the OpenAccess namespace. 00054 // ***************************************************************************** 00055 BEGIN_OA_NAMESPACE 00056 00057 00058 00059 // ***************************************************************************** 00060 // oaOccBusNetDef 00061 // ***************************************************************************** 00062 class OA_DESIGN_DLL_API oaOccBusNetDef : public oaOccObject { 00063 public: 00064 static oaOccBusNetDef *find(const oaOccurrence *occurrence, 00065 const oaScalarName &name); 00066 00067 oaUInt4 getMinIndex() const; 00068 oaUInt4 getMaxIndex() const; 00069 oaUInt4 getNumBits() const; 00070 00071 void getName(oaScalarName &name) const; 00072 void getName(const oaNameSpace &ns, 00073 oaString &name) const; 00074 void getPathName(oaScalarName &pathName) const; 00075 void getPathName(const oaNameSpace &ns, 00076 oaString &pathName) const; 00077 00078 oaBitOrder getBitOrder() const; 00079 00080 oaBoolean isImplicit() const; 00081 00082 oaCollection<oaOccBusNet, oaOccBusNetDef> getBusNets() const; 00083 oaCollection<oaOccBusNetBit, oaOccBusNetDef> getBusNetBits() const; 00084 00085 enum {dtIndex = oacBusNetDefDataType}; 00086 }; 00087 00088 00089 00090 // ***************************************************************************** 00091 // Design Traits. 00092 // ***************************************************************************** 00093 template<> 00094 class oaTraits<oaOccBusNetDef> { 00095 public: 00096 typedef oaOccObject parentType; 00097 typedef oaBusNetDefModTypeEnum modTypeType; 00098 enum {domain = oacOccDomain}; 00099 enum {isMultiDomain = true}; 00100 enum {dbType = oacDesignDBType}; 00101 enum {dtIndex = oacBusNetDefDataType}; 00102 enum {isConcrete = true}; 00103 enum {objectTypeEnumVal = oacOccBusNetDefType}; 00104 enum {dataTypeEnumVal = oacBusNetDefDataType}; 00105 }; 00106 00107 00108 00109 END_OA_NAMESPACE 00110 00111 #endif
Copyright © 2002 - 2010 Cadence Design Systems, Inc.
All Rights Reserved.