oaOccBusTermDef.h

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

Return to top of page