00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef VRS_IO_US_SAX_STRING_H
00019 #define VRS_IO_US_SAX_STRING_H
00020
00021
00022
00023
00024 #include <iostream>
00025
00026
00027
00028
00029 #include <xercesc/util/XMLString.hpp>
00030 #include <xercesc/util/PlatformUtils.hpp>
00031 #include <xercesc/parsers/SAXParser.hpp>
00032
00033
00034 using namespace XERCES_CPP_NAMESPACE;
00035
00036 namespace VRS
00037 {
00038 namespace GL2
00039 {
00040 namespace EXTSHADER
00041 {
00042 class SAXString
00043 {
00044 public:
00045
00046 SAXString(const XMLCh* const toTranscode)
00047 {
00048
00049 fLocalForm = XMLString::transcode(toTranscode);
00050
00051 return;
00052 }
00053
00054 ~SAXString(void)
00055 {
00056 XMLString::release(&fLocalForm);
00057 }
00058
00059 inline const char* localForm(void) const
00060 {
00061 return fLocalForm;
00062 }
00063
00064 private:
00065
00066 char* fLocalForm;
00067
00068 };
00069
00070
00071 inline std::ostream& operator<<(std::ostream& target, const SAXString& toDump)
00072 {
00073 target << toDump.localForm();
00074 return target;
00075 }
00076
00077 inline std::string& operator<<(std::string& target, const SAXString& toDump)
00078 {
00079 target = toDump.localForm();
00080 return target;
00081 }
00082
00083 }
00084
00085 }
00086
00087 }
00088
00089 #endif //VRS_IO_US_SAX_STRING_H