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
Copyright © 2002 - 2010 Cadence Design Systems, Inc.
All Rights Reserved.