LCOV - code coverage report
Current view: top level - /usr/include/xsd/cxx/xml - string.hxx (source / functions) Coverage Total Hit
Test: mu2edaq.info.cleaned Lines: 0.0 % 4 0
Test Date: 2026-07-30 01:56:44 Functions: 0.0 % 3 0

            Line data    Source code
       1              : // file      : xsd/cxx/xml/string.hxx
       2              : // copyright : Copyright (c) 2005-2017 Code Synthesis Tools CC
       3              : // license   : GNU GPL v2 + exceptions; see accompanying LICENSE file
       4              : 
       5              : #ifndef XSD_CXX_XML_STRING_HXX
       6              : #define XSD_CXX_XML_STRING_HXX
       7              : 
       8              : #include <string>
       9              : #include <cstddef> // std::size_t
      10              : 
      11              : #include <xercesc/util/XercesDefs.hpp> // XMLCh
      12              : 
      13              : #include <xsd/cxx/config.hxx> // XSD_CXX11
      14              : 
      15              : #ifdef XSD_CXX11
      16              : #  include <memory> // std::unique_ptr
      17              : #else
      18              : #  include <xsd/cxx/auto-array.hxx>
      19              : #endif
      20              : 
      21              : namespace xsd
      22              : {
      23              :   namespace cxx
      24              :   {
      25              :     namespace xml
      26              :     {
      27              :       // Transcode a null-terminated string.
      28              :       //
      29              :       template <typename C>
      30              :       std::basic_string<C>
      31              :       transcode (const XMLCh* s);
      32              : 
      33              :       // Transcode a potentially non-null-terminated string.
      34              :       //
      35              :       template <typename C>
      36              :       std::basic_string<C>
      37              :       transcode (const XMLCh* s, std::size_t length);
      38              : 
      39              : 
      40              :       // For VC wchar_t and XMLCh are the same type so we cannot overload
      41              :       // the transcode name. You should not use these functions anyway and
      42              :       // instead use the xml::string class below.
      43              :       //
      44              :       template <typename C>
      45              :       XMLCh*
      46              :       transcode_to_xmlch (const C*);
      47              : 
      48              :       template <typename C>
      49              :       XMLCh*
      50              :       transcode_to_xmlch (const std::basic_string<C>& s);
      51              : 
      52              :       //
      53              :       //
      54              :       class string
      55              :       {
      56              :       public :
      57              :         template <typename C>
      58            0 :         string (const std::basic_string<C>& s)
      59            0 :             : s_ (transcode_to_xmlch<C> (s)) {}
      60              : 
      61              :         template <typename C>
      62            0 :         string (const C* s): s_ (transcode_to_xmlch<C> (s)) {}
      63              : 
      64              :         const XMLCh*
      65            0 :         c_str () const {return s_.get ();}
      66              : 
      67              :         XMLCh*
      68              :         release () {return s_.release ();}
      69              : 
      70              :       private:
      71              :         string (const string&);
      72              : 
      73              :         string&
      74              :         operator= (const string&);
      75              : 
      76              :       private:
      77              : #ifdef XSD_CXX11
      78              :         std::unique_ptr<XMLCh[]> s_;
      79              : #else
      80              :         auto_array<XMLCh> s_;
      81              : #endif
      82              :       };
      83              :     }
      84              :   }
      85              : }
      86              : 
      87              : #endif // XSD_CXX_XML_STRING_HXX
      88              : 
      89              : #include <xsd/cxx/xml/string.ixx>
      90              : #include <xsd/cxx/xml/string.txx>
        

Generated by: LCOV version 2.0-1