|
OpenADFortTk (basic)
|
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