00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 
00021 #if !defined(QNAME_HPP)
00022 #define QNAME_HPP
00023 
00024 #include <xercesc/util/XMLString.hpp>
00025 #include <xercesc/util/XMLUniDefs.hpp>
00026 #include <xercesc/util/XMemory.hpp>
00027 #include <xercesc/util/PlatformUtils.hpp>
00028 
00029 #include <xercesc/internal/XSerializable.hpp>
00030 
00031 XERCES_CPP_NAMESPACE_BEGIN
00032 
00033 class  QName : public XSerializable, public XMemory
00034 {
00035 public :
00036     
00037     
00038     
00040     QName(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
00041 
00043     QName
00044     (
00045           const XMLCh* const   prefix
00046         , const XMLCh* const   localPart
00047         , const unsigned int   uriId
00048         , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
00049     );
00050 
00052     QName
00053     (
00054           const XMLCh* const   rawName
00055         , const unsigned int   uriId
00056         , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
00057     );
00058 
00060     QName(const QName& qname);
00061 
00062     ~QName();
00063 
00064     
00065     
00066     
00067     const XMLCh* getPrefix() const;
00068     XMLCh* getPrefix();
00069 
00070     const XMLCh* getLocalPart() const;
00071     XMLCh* getLocalPart();
00072 
00073     unsigned int getURI() const;
00074 
00075     const XMLCh* getRawName() const;
00076     XMLCh* getRawName();
00077 
00078     MemoryManager* getMemoryManager() const;
00079 
00080     
00081     
00082     
00083     void setName
00084     (
00085         const XMLCh* const        prefix
00086       , const XMLCh* const        localPart
00087        , const unsigned int        uriId
00088     );
00089 
00090     void setName
00091     (
00092         const XMLCh* const        rawName
00093        , const unsigned int        uriId
00094     );
00095 
00096     void setPrefix(const XMLCh*) ;
00097     void setLocalPart(const XMLCh*) ;
00098     void setNPrefix(const XMLCh*, const unsigned int) ;
00099     void setNLocalPart(const XMLCh*, const unsigned int) ;
00100     void setURI(const unsigned int) ;
00101 
00102     void setValues(const QName& qname);
00103 
00104     
00105     
00106     
00107     bool operator==(const QName&) const;
00108 
00109     
00110     
00111     
00112     void cleanUp();
00113 
00114     
00115 
00116 
00117     DECL_XSERIALIZABLE(QName)
00118 
00119 private :
00120     
00121     
00122     
00123     QName& operator=(const QName&);
00124 
00125     
00126     
00127     
00128     
00129     
00130     
00131     
00132     
00133     
00134     
00135     
00136     
00137     
00138     
00139     
00140     
00141     
00142     
00143     
00144     
00145     
00146     
00147     
00148     
00149     
00150     
00151     
00152     
00153     unsigned int        fPrefixBufSz;
00154     unsigned int        fLocalPartBufSz;
00155     unsigned int        fRawNameBufSz;
00156     unsigned int        fURIId;
00157     XMLCh*              fPrefix;
00158     XMLCh*              fLocalPart;
00159     XMLCh*              fRawName;
00160     MemoryManager*      fMemoryManager;
00161 };
00162 
00163 
00164 
00165 
00166 inline const XMLCh* QName::getPrefix() const
00167 {
00168     return fPrefix;
00169 }
00170 
00171 inline XMLCh* QName::getPrefix()
00172 {
00173     return fPrefix;
00174 }
00175 
00176 inline const XMLCh* QName::getLocalPart() const
00177 {
00178     return fLocalPart;
00179 }
00180 
00181 inline XMLCh* QName::getLocalPart()
00182 {
00183     return fLocalPart;
00184 }
00185 
00186 inline unsigned int QName::getURI() const
00187 {
00188     return fURIId;
00189 }
00190 
00191 inline MemoryManager* QName::getMemoryManager() const
00192 {
00193     return fMemoryManager;
00194 }
00195 
00196 
00197 
00198 
00199 inline void QName::setURI(const unsigned int uriId)
00200 {
00201     fURIId = uriId;
00202 }
00203 
00204 XERCES_CPP_NAMESPACE_END
00205 
00206 #endif