oaNativeNS.h

Go to the documentation of this file.
00001 // *****************************************************************************
00002 // oaNativeNS.h
00003 //
00004 // This file contains the definition for the oaNativeNS class. This class
00005 // implements the Native NameSpace used in name mapping.  In conjunction with
00006 // the oaName object, the oaNativeNS class facilitates mapping names to and
00007 // from Native.
00008 //
00009 // The Native nameSpace is case sensitive and has no reserved words.
00010 //
00011 // *****************************************************************************
00012 // Except as specified in the OpenAccess terms of use of Cadence or Silicon
00013 // Integration Initiative, this material may not be copied, modified,
00014 // re-published, uploaded, executed, or distributed in any way, in any medium,
00015 // in whole or in part, without prior written permission from Cadence.
00016 //
00017 //                Copyright 2002-2005 Cadence Design Systems, Inc.
00018 //                           All Rights Reserved.
00019 //
00020 //  $Author: icftcm $
00021 //  $Revision: #1 $
00022 //  $Date: 2010/08/09 $
00023 //  $State: Exp $
00024 // *****************************************************************************
00025 // *****************************************************************************
00026 
00027 
00028 
00029 #if !defined(oaNativeNS_P)
00030 #define oaNativeNS_P
00031 
00032 
00033 
00034 // *****************************************************************************
00035 // Nested includes
00036 // *****************************************************************************
00037 #include "oaName.h"
00038 
00039 
00040 
00041 // *****************************************************************************
00042 // Declare and define types in the OpenAccess namespace.
00043 // *****************************************************************************
00044 BEGIN_OA_NAMESPACE
00045 
00046 
00047 
00048 // *****************************************************************************
00049 // oaNativeNS
00050 // *****************************************************************************
00051 class OA_BASE_DLL_API oaNativeNS : public oaNameSpace {
00052 public:
00053                             oaNativeNS();
00054 
00055     virtual oaBoolean       isEqual(const oaScalarName  &n1,
00056                                     const oaScalarName  &n2) const;
00057     virtual oaBoolean       isEqual(const oaVectorName  &n1,
00058                                     const oaVectorName  &n2) const;
00059     virtual oaBoolean       isEqual(const oaVectorBitName   &n1,
00060                                     const oaVectorBitName   &n2) const;
00061     virtual oaBoolean       isEqual(const oaBundleName  &n1,
00062                                     const oaBundleName  &n2) const;
00063     virtual oaBoolean       isEqual(const oaSimpleName  &n1,
00064                                     const oaSimpleName  &n2) const;
00065     virtual oaBoolean       isEqual(const oaName    &n1,
00066                                     const oaName    &n2) const;
00067 
00068     virtual oaNameType      getType(const oaChar *in) const;
00069 
00070 private:
00071     virtual oaBoolean       isEqual(const oaNameMem &n1,
00072                                     const oaNameMem &n2) const;
00073     virtual oaBoolean       isEqual(const oaVectorName      &n1,
00074                                     const oaVectorBitName   &n2) const;
00075 
00076     virtual void            getInternalMember(const oaChar  *in,
00077                                               oaString      &out,
00078                                               oaBoolean     &caseSensitive,
00079                                               oaUInt4       len,
00080                                               oaUInt4       flags = 0) const;
00081     virtual void            getInternalScalar(const oaChar  *in,
00082                                               oaScalarName  &out) const;
00083     virtual void            getInternalVBit(const oaChar    *in,
00084                                             oaVectorBitName &out,
00085                                             oaBoolean       baseOnly = false)
00086         const;
00087     virtual void            getInternalVector(const oaChar  *in,
00088                                               oaVectorName  &out,
00089                                               oaBoolean     baseOnly = false)
00090         const;
00091     virtual void            getInternalBundle(const oaChar  *in,
00092                                               oaBundleName  &out) const;
00093 
00094     virtual void            getMember(const oaChar  *in,
00095                                       oaBoolean     caseSensitive,
00096                                       oaString      &out,
00097                                       oaUInt4       &loc,
00098                                       oaUInt4       flags = 0) const;
00099     virtual void            getMemberArray(const oaNameMem  *in,
00100                                            oaUInt4          numMembers,
00101                                            oaString         &out,
00102                                            oaUInt4          &loc) const;
00103     virtual void            getVectorMember(const oaNameMem &in,
00104                                             oaUInt4         start,
00105                                             oaUInt4         stop,
00106                                             oaUInt4         step,
00107                                             oaString        &out,
00108                                             oaUInt4         &loc) const;
00109     virtual void            getScalarName(const oaScalarName    &in,
00110                                           oaString              &out,
00111                                           oaUInt4               &loc) const;
00112     virtual void            getVectorName(const oaVectorName    &in,
00113                                           oaString              &out,
00114                                           oaUInt4               &loc) const;
00115     virtual void            getVectorBitName(const oaVectorBitName  &in,
00116                                              oaString               &out,
00117                                              oaUInt4                &loc) const;
00118     virtual void            getVectorBitName(const oaNameMem    *in,
00119                                              oaUInt4            numMembers,
00120                                              oaUInt4            start,
00121                                              oaString           &out,
00122                                              oaUInt4            &loc) const;
00123     virtual void            getBundleName(const oaBundleName    &in,
00124                                           oaString              &out,
00125                                           oaUInt4               &loc) const;
00126 
00127     virtual void            get(const oaByte    *data,
00128                                 oaString        &out,
00129                                 oaUInt4         &loc) const;
00130 
00131     void                    getSimple(const oaByte  *data,
00132                                       oaUInt4       &dIndex,
00133                                       oaString      &out,
00134                                       oaUInt4       &loc) const;
00135     void                    getBundle(const oaByte  *data,
00136                                       oaUInt4       &dIndex,
00137                                       oaString      &out,
00138                                       oaUInt4       &loc) const;
00139 
00140     oaBoolean               isNormalChar(oaChar c) const;
00141     oaBoolean               isBusChar(oaChar c) const;
00142     oaBoolean               isHexDelimiter(oaChar c) const;
00143 
00144     oaChar                  hierDelimiter;
00145     oaChar                  openBus;
00146     oaChar                  closeBus;
00147     oaChar                  bitDelimiter;
00148     oaChar                  hexDelimiter;
00149     oaChar                  nameDelimiter;
00150     oaChar                  repeat;
00151 };
00152 
00153 
00154 
00155 END_OA_NAMESPACE
00156 
00157 #endif

Return to top of page