]> git.donarmstrong.com Git - flightcrew.git/blob - src/XercesExtensions/FromXercesStringConverter.cpp
Imported Upstream version 0.7.2+dfsg
[flightcrew.git] / src / XercesExtensions / FromXercesStringConverter.cpp
1 /************************************************************************
2 **
3 **  Copyright (C) 2010  Strahinja Markovic
4 **
5 **  This file is part of FlightCrew.
6 **
7 **  FlightCrew is free software: you can redistribute it and/or modify
8 **  it under the terms of the GNU Lesser General Public License as published
9 **  by the Free Software Foundation, either version 3 of the License, or
10 **  (at your option) any later version.
11 **
12 **  FlightCrew is distributed in the hope that it will be useful,
13 **  but WITHOUT ANY WARRANTY; without even the implied warranty of
14 **  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 **  GNU Lesser General Public License for more details.
16 **
17 **  You should have received a copy of the GNU Lesser General Public License
18 **  along with FlightCrew.  If not, see <http://www.gnu.org/licenses/>.
19 **
20 *************************************************************************/
21
22 #include <xercesc/util/TransService.hpp>
23 #include "FromXercesStringConverter.h"
24
25 namespace XercesExt
26 {
27
28 FromXercesStringConverter::FromXercesStringConverter( const XMLCh* const xerces_string )
29 {
30     if ( xerces_string && 
31          xc::XMLString::stringLen( xerces_string ) > 0 )
32     {
33         xc::TranscodeToStr transcoder( xerces_string, "UTF-8" );
34
35         m_Utf8String = (char*) transcoder.adopt();
36     }
37
38     else
39     {
40         m_Utf8String = NULL;
41     }
42 }
43
44
45 FromXercesStringConverter::~FromXercesStringConverter()
46 {
47     if ( m_Utf8String )
48         
49         xc::XMLString::release( &m_Utf8String );
50 }
51
52
53 const char* FromXercesStringConverter::Utf8String() const
54 {
55     return m_Utf8String;
56 }
57
58
59 std::string FromXercesStringConverter::StandardString() const
60 {
61     return m_Utf8String ? std::string( m_Utf8String ) : std::string();
62 }
63
64 } // namespace XercesExt