From a15cf65c44d5c224169c32ef5495b68c758134b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Frings-F=C3=BCrst?= Date: Sun, 18 May 2014 16:08:14 +0200 Subject: Imported Upstream version 3.3.0.2 --- xsd/libxsd/xsd/cxx/xml/char-lcp.txx | 55 +++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 xsd/libxsd/xsd/cxx/xml/char-lcp.txx (limited to 'xsd/libxsd/xsd/cxx/xml/char-lcp.txx') diff --git a/xsd/libxsd/xsd/cxx/xml/char-lcp.txx b/xsd/libxsd/xsd/cxx/xml/char-lcp.txx new file mode 100644 index 0000000..4603537 --- /dev/null +++ b/xsd/libxsd/xsd/cxx/xml/char-lcp.txx @@ -0,0 +1,55 @@ +// file : xsd/cxx/xml/char-lcp.txx +// author : Boris Kolpackov +// copyright : Copyright (c) 2005-2010 Code Synthesis Tools CC +// license : GNU GPL v2 + exceptions; see accompanying LICENSE file + +#include // std::memcpy + +#include + +#include +#include + +namespace xsd +{ + namespace cxx + { + namespace xml + { + template + std::basic_string char_lcp_transcoder:: + to (const XMLCh* s) + { + std_memory_manager mm; + auto_array r ( + xercesc::XMLString::transcode (s, &mm), mm); + return std::basic_string (r.get ()); + } + + template + std::basic_string char_lcp_transcoder:: + to (const XMLCh* s, std::size_t len) + { + auto_array tmp (new XMLCh[len + 1]); + std::memcpy (tmp.get (), s, len * sizeof (XMLCh)); + tmp[len] = XMLCh (0); + + std_memory_manager mm; + auto_array r ( + xercesc::XMLString::transcode (tmp.get (), &mm), mm); + + tmp.reset (); + + return std::basic_string (r.get ()); + } + + template + XMLCh* char_lcp_transcoder:: + from (const C* s) + { + std_memory_manager mm; + return xercesc::XMLString::transcode (s, &mm); + } + } + } +} -- cgit v1.2.3