source: icXML/icXML-devel/src/icxercesc/util/XMLUTF16Transcoder.hpp

Last change on this file was 3103, checked in by cameron, 6 years ago

Initial imports for icXML v0.9

File size: 3.6 KB
Line 
1/*
2 * Unless required by applicable law or agreed to in writing, software
3 * distributed under the License is distributed on an "AS IS" BASIS,
4 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
5 * See the License for the specific language governing permissions and
6 * limitations under the License.
7 */
8
9/*
10 * $Id: XMLUTF16Transcoder.hpp 932887 2010-04-11 13:04:59Z borisk $
11 */
12
13#if !defined(XERCESC_INCLUDE_GUARD_XMLUTF16TRANSCODER_HPP)
14#define XERCESC_INCLUDE_GUARD_XMLUTF16TRANSCODER_HPP
15
16#include <xercesc/util/XercesDefs.hpp>
17#include <icxercesc/util/TransService.hpp>
18#include <icxercesc/internal/XMLReader.hpp>
19#include <icxmlc/XMLConfig.hpp>
20
21XERCES_CPP_NAMESPACE_BEGIN
22
23class XMLUTF16CharacterSetAdapter;
24
25//
26//  This class provides an implementation of the XMLTranscoder interface
27//  for a simple UTF16 transcoder. The parser does some encodings
28//  intrinsically without depending upon external transcoding services.
29//  To make everything more orthogonal, we implement these internal
30//  transcoders using the same transcoder abstraction as the pluggable
31//  transcoding services do.
32//
33class XMLUTIL_EXPORT XMLUTF16Transcoder : public XMLTranscoder
34{
35        friend class XMLUTF16CharacterSetAdapter;
36
37public :
38        // -----------------------------------------------------------------------
39        //  Public constructors and destructor
40        // -----------------------------------------------------------------------
41        XMLUTF16Transcoder
42        (
43                const   XMLCh* const    encodingName
44                , const XMLSize_t       blockSize
45                , const bool            swapped
46                , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
47        );
48
49        virtual ~XMLUTF16Transcoder();
50
51
52        // -----------------------------------------------------------------------
53        //  Implementation of the XMLTranscoder interface
54        // -----------------------------------------------------------------------
55        virtual XMLSize_t transcodeFrom
56        (
57                const   XMLByte* const          srcData
58                , const XMLSize_t               srcCount
59                ,       XMLCh* const            toFill
60                , const XMLSize_t               maxChars
61                ,       XMLSize_t&              bytesEaten
62                ,       unsigned char* const    charSizes
63        );
64
65    virtual XMLSize_t transcodeFrom
66    (
67        const   XMLByte* const          srcData
68        , const XMLSize_t               srcCount
69        ,       XMLCh* const            toFill
70        , const XMLSize_t               maxChars
71        ,       XMLSize_t&              bytesEaten
72    );
73
74
75        virtual XMLSize_t transcodeTo
76        (
77                const   XMLCh* const    srcData
78                , const XMLSize_t       srcCount
79                ,       XMLByte* const  toFill
80                , const XMLSize_t       maxBytes
81                ,       XMLSize_t&      charsEaten
82                , const UnRepOpts       options
83        );
84
85        virtual XMLSize_t transcodeFrom
86        (
87                  const XMLByte* const          srcData
88                , const XMLSize_t               srcCount
89                ,       XMLBuffer &             toFill
90        );
91
92        virtual bool canTranscodeTo
93        (
94                const   unsigned int    toCheck
95        );
96
97    virtual bool isSwapped() const;
98
99private :
100        // -----------------------------------------------------------------------
101        //  Unimplemented constructors and operators
102        // -----------------------------------------------------------------------
103        XMLUTF16Transcoder(const XMLUTF16Transcoder&);
104        XMLUTF16Transcoder& operator=(const XMLUTF16Transcoder&);
105
106
107        // -----------------------------------------------------------------------
108        //  Private data members
109        //
110        //  fSwapped
111        //      Indicates whether the encoding is of the opposite endianness from
112        //      the local host.
113        // -----------------------------------------------------------------------
114        bool    fSwapped;
115};
116
117XERCES_CPP_NAMESPACE_END
118
119#endif
Note: See TracBrowser for help on using the repository browser.