OpenADFortTk (basic)
src/xaif2whirl/XercesStrX.h
Go to the documentation of this file.
00001 // -*-Mode: C++;-*-
00002 // $Header: /m_home/m_utkej/Argonne/cvs2svn/cvs/OpenADFortTk/src/xaif2whirl/XercesStrX.h,v 1.4 2006-05-12 16:12:23 utke Exp $
00003 
00004 #ifndef XercesStrX_INCLUDED_h
00005 #define XercesStrX_INCLUDED_h
00006 
00007 #include <iostream>
00008 
00009 #include <xercesc/util/XercesDefs.hpp>
00010 #include <xercesc/util/XMLString.hpp>
00011 
00012 namespace xaif2whirl { 
00013 
00018   class XercesStrX {
00019 
00020   public :
00024     XercesStrX(const XMLCh* const toTranscode) {
00025       local = xercesc::XMLString::transcode(toTranscode);
00026     }
00027   
00028     ~XercesStrX() { xercesc::XMLString::release(&local); }
00029 
00030     const char* c_str() const { return local; }
00031 
00032     // For debugging
00033     static void DumpXMLStr(std::ostream& os, const XMLCh* const xmlstr);
00034     static void DDumpXMLStr(const XMLCh* const xmlstr);
00035 
00036   private :
00037     char* local;
00038   };
00039 
00040 
00041   inline std::ostream& 
00042   operator<<(std::ostream& os, const XMLCh* const toDump)
00043   {
00044     XercesStrX::DumpXMLStr(os, toDump);
00045     return os;
00046   }
00047 
00048   inline std::ostream& 
00049   operator<<(std::ostream& os, const XercesStrX& toDump)
00050   {
00051     os << toDump.c_str();
00052     return os;
00053   }
00054 
00055 }
00056 
00057 #endif // XercesStrX_INCLUDED_h
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines