00001 // ***************************************************************************** 00002 // ***************************************************************************** 00003 // oaModBusTermBit.h 00004 // 00005 // This file contains the definition for the oaModBusTermBit class and its 00006 // public supporting classes. The oaModBusTermBit class implements a single bit 00007 // of a logical busTerm. BusTermBits are automatically created and destroyed as 00008 // busTerms are created and destroyed. Editing is restricted on implicitly 00009 // created busTermBits because they are automatically deleted when the last 00010 // busTerm containing the bit is deleted. 00011 // 00012 // BusTermBits may be explicitly created as well. Explicitly created 00013 // busTermBits may be modified like other terminal objects because they are not 00014 // automatically deleted even if they represent a bit of a busTerm that is 00015 // deleted. 00016 // 00017 // The implicit busTermBits of a busTerm may be made explicit when the busTerm 00018 // undergoes "scalarization". The scalarization of a busTerm makes all 00019 // associated busTermBits explicit, that is, as if they had been created 00020 // explicitly. 00021 // 00022 // ***************************************************************************** 00023 // Except as specified in the OpenAccess terms of use of Cadence or Silicon 00024 // Integration Initiative, this material may not be copied, modified, 00025 // re-published, uploaded, executed, or distributed in any way, in any medium, 00026 // in whole or in part, without prior written permission from Cadence. 00027 // 00028 // Copyright 2003-2005 Cadence Design Systems, Inc. 00029 // All Rights Reserved. 00030 // 00031 // $Author: icftcm $ 00032 // $Revision: #1 $ 00033 // $Date: 2010/08/09 $ 00034 // $State: Exp $ 00035 // ***************************************************************************** 00036 // ***************************************************************************** 00037 00038 00039 00040 #if !defined(oaModBusTermBit_P) 00041 #define oaModBusTermBit_P 00042 00043 00044 00045 // ***************************************************************************** 00046 // Nested includes 00047 // ***************************************************************************** 00048 #include "oaModTerm.h" 00049 00050 00051 00052 // ***************************************************************************** 00053 // Declare and define types in the OpenAccess namespace. 00054 // ***************************************************************************** 00055 BEGIN_OA_NAMESPACE 00056 00057 00058 00059 // ***************************************************************************** 00060 // oaModBusTermBit 00061 // ***************************************************************************** 00062 class OA_DESIGN_DLL_API oaModBusTermBit : public oaModBitTerm { 00063 public: 00064 static oaModBusTermBit *create(oaModBitNet *modNet, 00065 const oaScalarName &baseName, 00066 oaUInt4 bitIndex, 00067 oaTermType type = oacInputOutputTermType); 00068 static oaModBusTermBit *create(oaModBitNet *modNet, 00069 const oaVectorBitName &bitName, 00070 oaTermType type = oacInputOutputTermType); 00071 00072 static oaModBusTermBit *find(const oaModule *module, 00073 const oaScalarName &baseName, 00074 oaUInt4 bitIndex); 00075 00076 static oaBoolean isValidName(const oaModBitNet *net, 00077 const oaScalarName &baseName, 00078 oaUInt4 bitIndex); 00079 00080 oaModBusTermDef *getDef() const; 00081 oaUInt4 getBitIndex() const; 00082 00083 using oaModTerm::getName; 00084 void getName(oaVectorBitName &name) const; 00085 00086 void setName(const oaScalarName &baseName, 00087 oaUInt4 bitIndex); 00088 }; 00089 00090 00091 00092 // ***************************************************************************** 00093 // Design Traits. 00094 // ***************************************************************************** 00095 template<> 00096 class oaTraits<oaModBusTermBit> { 00097 public: 00098 typedef oaTermModTypeEnum modTypeType; 00099 typedef oaModBitTerm parentType; 00100 enum {dtIndex = oacTermDataType}; 00101 enum {dataTypeEnumVal = oacTermDataType}; 00102 enum {domain = oacModDomain}; 00103 enum {isMultiDomain = true}; 00104 enum {dbType = oacDesignDBType}; 00105 enum {isConcrete = true}; 00106 enum {objectTypeEnumVal = oacModBusTermBitType}; 00107 }; 00108 00109 00110 00111 END_OA_NAMESPACE 00112 00113 #endif
Copyright © 2002 - 2010 Cadence Design Systems, Inc.
All Rights Reserved.