oaSpiceNS.h

Go to the documentation of this file.
00001 // *****************************************************************************
00002 // oaSpiceNS.h
00003 //
00004 // This file contains the definition for the oaSpiceNS class. This class
00005 // implement the Spice NameSpace used in name mapping.  In conjunction with the
00006 // oaName object, the oaSpiceNS class facilitate mapping names to and from
00007 // Spice.
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 2002-2005 Cadence Design Systems, Inc.
00016 //                           All Rights Reserved.
00017 //
00018 //  $Author: icftcm $
00019 //  $Revision: #1 $
00020 //  $Date: 2010/08/09 $
00021 //  $State$
00022 // *****************************************************************************
00023 // *****************************************************************************
00024 
00025 
00026 
00027 #if !defined(oaSpiceNS_P)
00028 #define oaSpiceNS_P
00029 
00030 
00031 
00032 // *****************************************************************************
00033 // Nested includes
00034 // *****************************************************************************
00035 #include "oaName.h"
00036 
00037 
00038 
00039 // *****************************************************************************
00040 // Declare and define types in the OpenAccess namespace.
00041 // *****************************************************************************
00042 BEGIN_OA_NAMESPACE
00043 
00044 
00045 
00046 // *****************************************************************************
00047 // oaSpiceNS
00048 // *****************************************************************************
00049 class OA_BASE_DLL_API oaSpiceNS : public oaNameSpace {
00050 public:
00051                             oaSpiceNS();
00052 
00053     virtual oaBoolean       isEqual(const oaScalarName  &n1,
00054                                     const oaScalarName  &n2) const;
00055     virtual oaBoolean       isEqual(const oaVectorName  &n1,
00056                                     const oaVectorName  &n2) const;
00057     virtual oaBoolean       isEqual(const oaVectorBitName   &n1,
00058                                     const oaVectorBitName   &n2) const;
00059     virtual oaBoolean       isEqual(const oaBundleName  &n1,
00060                                     const oaBundleName  &n2) const;
00061     virtual oaBoolean       isEqual(const oaSimpleName  &n1,
00062                                     const oaSimpleName  &n2) const;
00063     virtual oaBoolean       isEqual(const oaName    &n1,
00064                                     const oaName    &n2) const;
00065 
00066     virtual oaNameType      getType(const oaChar *in) const;
00067 
00068 private:
00069     virtual oaBoolean       isEqual(const oaNameMem &n1,
00070                                     const oaNameMem &n2) const;
00071     virtual oaBoolean       isEqual(const oaVectorName      &n1,
00072                                     const oaVectorBitName   &n2) const;
00073 
00074     virtual void            getInternalMember(const oaChar  *in,
00075                                               oaString      &out,
00076                                               oaBoolean     &caseSensitive,
00077                                               oaUInt4       len,
00078                                               oaUInt4       flags = 0) const;
00079     virtual void            getInternalScalar(const oaChar  *in,
00080                                               oaScalarName  &out) const;
00081     virtual void            getInternalVBit(const oaChar    *in,
00082                                             oaVectorBitName &out,
00083                                             oaBoolean       baseOnly = false) const;
00084     virtual void            getInternalVector(const oaChar  *in,
00085                                               oaVectorName  &out,
00086                                               oaBoolean     baseOnly = false) const;
00087 
00088     virtual void            getMember(const oaChar  *in,
00089                                       oaBoolean     caseSensitive,
00090                                       oaString      &out,
00091                                       oaUInt4       &loc,
00092                                       oaUInt4       flags = 0) const;
00093     virtual void            getMemberArray(const oaNameMem  *in,
00094                                            oaUInt4          numMembers,
00095                                            oaString         &out,
00096                                            oaUInt4          &loc) const;
00097     virtual void            getScalarName(const oaScalarName    &in,
00098                                           oaString              &out,
00099                                           oaUInt4               &loc) const;
00100     virtual void            getVectorName(const oaVectorName    &in,
00101                                           oaString              &out,
00102                                           oaUInt4               &loc) const;
00103     virtual void            getVectorBitName(const oaVectorBitName  &in,
00104                                              oaString               &out,
00105                                              oaUInt4                &loc) const;
00106     virtual void            getVectorBitName(const oaNameMem    *in,
00107                                              oaUInt4            numMembers,
00108                                              oaUInt4            start,
00109                                              oaString           &out,
00110                                              oaUInt4            &loc) const;
00111     virtual void            get(const oaByte    *data,
00112                                 oaString        &out,
00113                                 oaUInt4         &loc) const;
00114 
00115     oaBoolean               isNormalChar(oaChar c) const;
00116     oaBoolean               isHexDelimiter(oaChar c) const;
00117     oaBoolean               isHierDelimiter(oaChar c) const;
00118     oaBoolean               isBusChar(oaChar c) const;
00119     oaBoolean               isBusIndex(const oaChar *in) const;
00120     oaBoolean               isEncodedBusIndex(const oaChar  *in,
00121                                               const oaChar  hexChar) const;
00122     oaBoolean               isUpperDelimiter(oaChar c) const;
00123 
00124     oaChar                  hexDelimiter;
00125     oaChar                  hierDelimiter;
00126     oaChar                  openBus;
00127     oaChar                  closeBus;
00128 };
00129 
00130 
00131 
00132 END_OA_NAMESPACE
00133 
00134 #endif

Return to top of page