oaModBusNetBit.h

Go to the documentation of this file.
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

Return to top of page