XercesEncodings.hxx
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef XERCES_ENCODINGS_HXX
00022 #define XERCES_ENCODINGS_HXX
00023
00024
00025 #include <xercesc/util/XMLString.hpp>
00026
00027 namespace xercesc=XERCES_CPP_NAMESPACE;
00028
00029 namespace CLAM
00030 {
00035 class XercesLocal2Unicode
00036 {
00037 public :
00038 XercesLocal2Unicode(const char* const toTranscode)
00039 {
00040
00041 _unicodeForm = xercesc::XMLString::transcode(toTranscode);
00042 }
00043
00044 ~XercesLocal2Unicode()
00045 {
00046 xercesc::XMLString::release(&_unicodeForm);
00047 }
00048
00049 const XMLCh* unicodeForm() const
00050 {
00051 return _unicodeForm;
00052 }
00053
00054 private :
00055 XMLCh* _unicodeForm;
00056 };
00057
00062 class XercesUnicode2Local
00063 {
00064 public :
00065 XercesUnicode2Local(const XMLCh* const toTranscode)
00066 {
00067
00068 _localForm = xercesc::XMLString::transcode(toTranscode);
00069 }
00070
00071 ~XercesUnicode2Local()
00072 {
00073 xercesc::XMLString::release(&_localForm);
00074 }
00075
00076 const char* localForm() const
00077 {
00078 return _localForm;
00079 }
00080
00081 private :
00082 char* _localForm;
00083 };
00084
00085 #define U(str) ::CLAM::XercesLocal2Unicode(str).unicodeForm()
00086 #define L(str) ::CLAM::XercesUnicode2Local(str).localForm()
00087
00088 }
00089
00090 #endif// XERCES_ENCODINGS_HXX
00091