oaModModuleScalarInst.h

Go to the documentation of this file.
00001 // *****************************************************************************
00002 // *****************************************************************************
00003 // oaModModuleScalarInst.h
00004 //
00005 // This file contains the definition for the oaModModuleScalarInst class. This 
00006 // class implements a logical scalar (i.e. single-bit) instance of module 
00007 // master.
00008 //
00009 // *****************************************************************************
00010 // Except as specified in the OpenAccess terms of use of Cadence or Silicon
00011 // Integration Initiative, this material may not be copied, modified,
00012 // re-published, uploaded, executed, or distributed in any way, in any medium,
00013 // in whole or in part, without prior written permission from Cadence.
00014 //
00015 //                Copyright 2003-2005 Cadence Design Systems, Inc.
00016 //                           All Rights Reserved.
00017 //
00018 //  $Author: icftcm $
00019 //  $Revision: #1 $
00020 //  $Date: 2010/08/09 $
00021 //  $State: Exp $
00022 // *****************************************************************************
00023 // *****************************************************************************
00024 
00025 
00026 
00027 #if !defined(oaModModuleScalarInst_P)
00028 #define oaModModuleScalarInst_P
00029 
00030 
00031 
00032 // *****************************************************************************
00033 // Nested includes
00034 // *****************************************************************************
00035 #include "oaModModuleInst.h"
00036 
00037 
00038 
00039 // *****************************************************************************
00040 // Declare and define types in the OpenAccess namespace.
00041 // *****************************************************************************
00042 BEGIN_OA_NAMESPACE
00043 
00044 
00045 
00046 // *****************************************************************************
00047 // oaModModuleScalarInst
00048 // *****************************************************************************
00049 class OA_DESIGN_DLL_API oaModModuleScalarInst : public oaModModuleBitInst {
00050 public:
00051     static oaModModuleScalarInst    *create(oaModule            *module,
00052                                             oaModule            *master,
00053                                             const oaScalarName  &name);
00054 
00055     static oaModModuleScalarInst    *create(oaModule    *module,
00056                                             oaModule    *master);
00057 
00058     static oaModModuleScalarInst    *create(oaModule            *module,
00059                                             const oaScalarName  &masterModName,
00060                                             const oaScalarName  &name);
00061 
00062     static oaModModuleScalarInst    *create(oaModule            *module,
00063                                             const oaScalarName  &masterModName);
00064 
00065     static oaModModuleScalarInst    *find(const oaModule        *module,
00066                                           const oaScalarName    &name);
00067 
00068     static oaBoolean                isValidName(const oaModule      *module,
00069                                                 const oaScalarName  &name);
00070 
00071     using                           oaModInst::getName;
00072     void                            getName(oaScalarName &name) const;
00073 
00074     void                            setName(const oaScalarName &name);
00075 };
00076 
00077 
00078 
00079 // *****************************************************************************
00080 // Design Traits.
00081 // *****************************************************************************
00082 template<>
00083 class oaTraits<oaModModuleScalarInst> {
00084 public:
00085     typedef oaInstModTypeEnum   modTypeType;
00086     typedef oaModModuleBitInst  parentType;
00087     enum {dtIndex = oacInstDataType};
00088     enum {dataTypeEnumVal = oacInstDataType};
00089     enum {domain = oacModDomain};
00090     enum {isMultiDomain = true};
00091     enum {dbType = oacDesignDBType};
00092     enum {isConcrete = true};
00093     enum {objectTypeEnumVal = oacModModuleScalarInstType};
00094 };
00095 
00096 
00097 
00098 END_OA_NAMESPACE
00099 
00100 #endif

Return to top of page