oaWinNS.h

Go to the documentation of this file.
00001 // *****************************************************************************
00002 // oaWinNS.h
00003 //
00004 // This file contains the definition for the oaWinNS class. This class
00005 // implements the Windows NameSpace used in name mapping. In conjunction with
00006 // the oaName object, the oaWinNS class facilitates mapping names to and from
00007 // the Windows fileSystem.
00008 //
00009 // Note: At this time the Windows NameSpace does not support indexed, vectored,
00010 // bundled, or hierarchical names.  Windows is case insensitive.
00011 //
00012 // *****************************************************************************
00013 // Except as specified in the OpenAccess terms of use of Cadence or Silicon
00014 // Integration Initiative, this material may not be copied, modified,
00015 // re-published, uploaded, executed, or distributed in any way, in any medium,
00016 // in whole or in part, without prior written permission from Cadence.
00017 //
00018 //                Copyright 2002-2005 Cadence Design Systems, Inc.
00019 //                           All Rights Reserved.
00020 //
00021 //  $Author: icftcm $
00022 //  $Revision: #1 $
00023 //  $Date: 2010/08/09 $
00024 //  $State: Exp $
00025 // *****************************************************************************
00026 // *****************************************************************************
00027 
00028 
00029 
00030 #if !defined(oaWinNS_P)
00031 #define oaWinNS_P
00032 
00033 
00034 
00035 // *****************************************************************************
00036 // Nested includes
00037 // *****************************************************************************
00038 #include "oaName.h"
00039 
00040 
00041 
00042 // *****************************************************************************
00043 // Declare and define types in the OpenAccess namespace.
00044 // *****************************************************************************
00045 BEGIN_OA_NAMESPACE
00046 
00047 
00048 
00049 // *****************************************************************************
00050 // Forward Class Declarations
00051 // *****************************************************************************
00052 class oaKeywordTbl;
00053 class oaStringTbl;
00054 
00055 
00056 
00057 // *****************************************************************************
00058 // oaWinNS
00059 // *****************************************************************************
00060 class OA_BASE_DLL_API oaWinNS : public oaNameSpace {
00061 public:
00062                             oaWinNS();
00063                             oaWinNS(const oaWinNS &ns);
00064                             ~oaWinNS();
00065 
00066     oaWinNS                 &operator=(const oaWinNS &ns);
00067 
00068     virtual oaBoolean       isEqual(const oaScalarName  &n1,
00069                                     const oaScalarName  &n2) const;
00070     virtual oaBoolean       isEqual(const oaVectorName  &n1,
00071                                     const oaVectorName  &n2) const;
00072     virtual oaBoolean       isEqual(const oaVectorBitName   &n1,
00073                                     const oaVectorBitName   &n2) const;
00074     virtual oaBoolean       isEqual(const oaBundleName  &n1,
00075                                     const oaBundleName  &n2) const;
00076     virtual oaBoolean       isEqual(const oaSimpleName  &n1,
00077                                     const oaSimpleName  &n2) const;
00078     virtual oaBoolean       isEqual(const oaName    &n1,
00079                                     const oaName    &n2) const;
00080 
00081     virtual oaNameType      getType(const oaChar *in) const;
00082 
00083 private:
00084     virtual oaBoolean       isEqual(const oaNameMem &n1,
00085                                     const oaNameMem &n2) const;
00086     virtual oaBoolean       isEqual(const oaVectorName      &n1,
00087                                     const oaVectorBitName   &n2) const;
00088 
00089     virtual void            getInternalMember(const oaChar  *in,
00090                                               oaString      &out,
00091                                               oaBoolean     &caseSensitive,
00092                                               oaUInt4       len,
00093                                               oaUInt4       flags = 0) const;
00094     virtual void            getInternalScalar(const oaChar  *in,
00095                                               oaScalarName  &out) const;
00096 
00097     virtual void            getMember(const oaChar  *in,
00098                                       oaBoolean     caseSensitive,
00099                                       oaString      &out,
00100                                       oaUInt4       &loc,
00101                                       oaUInt4       flags = 0) const;
00102     virtual void            getScalarName(const oaScalarName    &in,
00103                                           oaString              &out,
00104                                           oaUInt4               &loc) const;
00105 
00106     virtual void            get(const oaByte    *data,
00107                                 oaString        &out,
00108                                 oaUInt4         &loc) const;
00109 
00110     static oaKeywordTbl     *getKeywordTbl();
00111     static void             setKeywordTbl(oaKeywordTbl *keywordTblIn);
00112 
00113     oaBoolean               isNormalChar(oaChar c) const;
00114     oaBoolean               isHexDelimiter(oaChar c) const;
00115     oaBoolean               isUpperDelimiter(oaChar c) const;
00116 
00117     oaChar                  hexDelimiter;
00118     oaChar                  upperDelimiter;
00119 
00120     static const oaString   _keywords[];
00121     static oaStringTbl      *keywordTbl;
00122     static oaUInt4          _keywordTblRef;
00123 
00124 };
00125 
00126 
00127 
00128 END_OA_NAMESPACE
00129 
00130 #endif

Return to top of page