oaUnixNS.h

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

Return to top of page