00001 // ***************************************************************************** 00002 // ***************************************************************************** 00003 // oaModBusNetBit.h 00004 // 00005 // This file contains the definition for the oaModBusNetBit class and its public 00006 // supporting classes. The oaModBusNetBit class implements a single bit of a 00007 // logical busNet. BusNetBits are automatically created and destroyed as 00008 // busNets are created and destroyed. Editing is restricted on implicitly 00009 // created busNetBits because they are automatically deleted when the last 00010 // busNet containing the bit is deleted. 00011 // 00012 // BusNetBits may be explicitly created as well. Explicitly created busNetBits 00013 // may be modified like any other net object because they are not automatically 00014 // deleted even if they represent a bit of a busNet that is deleted. 00015 // 00016 // The implicit busNetBits of a busNet may be made explicit when the busNet 00017 // undergoes "scalarization". The scalarization of a busNet makes all 00018 // associated busNetBits explicit, that is, as if they had been created 00019 // explicitly. 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(oaModBusNetBit_P) 00040 #define oaModBusNetBit_P 00041 00042 00043 00044 // ***************************************************************************** 00045 // Nested includes 00046 // ***************************************************************************** 00047 #include "oaModNet.h" 00048 00049 00050 00051 // ***************************************************************************** 00052 // Declare and define types in the OpenAccess namespace. 00053 // ***************************************************************************** 00054 BEGIN_OA_NAMESPACE 00055 00056 00057 00058 // ***************************************************************************** 00059 // oaModBusNetBit 00060 // ***************************************************************************** 00061 class OA_DESIGN_DLL_API oaModBusNetBit : public oaModBitNet { 00062 public: 00063 static oaModBusNetBit *create(oaModule *module, 00064 const oaScalarName &baseName, 00065 oaUInt4 bitIndex, 00066 oaSigType type = oacSignalSigType, 00067 oaBoolean isGlobal = false); 00068 static oaModBusNetBit *create(oaModule *module, 00069 const oaVectorBitName &bitName, 00070 oaSigType type = oacSignalSigType, 00071 oaBoolean isGlobal = false); 00072 00073 static oaModBusNetBit *find(const oaModule *module, 00074 const oaScalarName &baseName, 00075 oaUInt4 bitIndex); 00076 00077 static oaBoolean isValidName(const oaModule *module, 00078 const oaScalarName &baseName, 00079 oaUInt4 bitIndex); 00080 00081 oaModBusNetDef *getDef() const; 00082 oaUInt4 getBitIndex() const; 00083 00084 using oaModNet::getName; 00085 void getName(oaVectorBitName &name) const; 00086 00087 void setName(const oaScalarName &baseName, 00088 oaUInt4 bitIndex); 00089 }; 00090 00091 00092 00093 // ***************************************************************************** 00094 // Design Traits. 00095 // ***************************************************************************** 00096 template<> 00097 class oaTraits<oaModBusNetBit> { 00098 public: 00099 typedef oaNetModTypeEnum modTypeType; 00100 typedef oaModBitNet parentType; 00101 enum {dtIndex = oacNetDataType}; 00102 enum {dataTypeEnumVal = oacNetDataType}; 00103 enum {domain = oacModDomain}; 00104 enum {isMultiDomain = true}; 00105 enum {dbType = oacDesignDBType}; 00106 enum {isConcrete = true}; 00107 enum {objectTypeEnumVal = oacModBusNetBitType}; 00108 }; 00109 00110 00111 00112 END_OA_NAMESPACE 00113 00114 #endif
Copyright © 2002 - 2010 Cadence Design Systems, Inc.
All Rights Reserved.