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

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

Initial imports for icXML v0.9

File size: 3.7 KB
Line 
1/*
2 * Licensed to the Apache Software Foundation (ASF) under one or more
3 * contributor license agreements.  See the NOTICE file distributed with
4 * this work for additional information regarding copyright ownership.
5 * The ASF licenses this file to You under the Apache License, Version 2.0
6 * (the "License"); you may not use this file except in compliance with
7 * the License.  You may obtain a copy of the License at
8 *
9 *      http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17
18/*
19 * $Id: XML88591Transcoder.hpp 932887 2010-04-11 13:04:59Z borisk $
20 */
21
22#if !defined(XERCESC_INCLUDE_GUARD_XML88591TRANSCODER_HPP)
23#define XERCESC_INCLUDE_GUARD_XML88591TRANSCODER_HPP
24
25#include <xercesc/util/XercesDefs.hpp>
26#include <icxercesc/util/TransService.hpp>
27
28XERCES_CPP_NAMESPACE_BEGIN
29
30//
31//  This class provides an implementation of the XMLTranscoder interface
32//  for a simple 8859-1 transcoder. The parser does some encodings
33//  intrinsically without depending upon external transcoding services.
34//  To make everything more orthogonal, we implement these internal
35//  transcoders using the same transcoder abstraction as the pluggable
36//  transcoding services do.
37//
38class XMLUTIL_EXPORT XML88591Transcoder : public XMLTranscoder
39{
40public :
41    // -----------------------------------------------------------------------
42    //  Public constructors and destructor
43    // -----------------------------------------------------------------------
44    XML88591Transcoder
45    (
46        const   XMLCh* const   encodingName
47        , const XMLSize_t      blockSize
48        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
49    );
50
51    virtual ~XML88591Transcoder();
52
53
54    // -----------------------------------------------------------------------
55    //  Implementation of the XMLTranscoder interface
56    // -----------------------------------------------------------------------
57    virtual XMLSize_t transcodeFrom
58    (
59        const   XMLByte* const          srcData
60        , const XMLSize_t               srcCount
61        ,       XMLCh* const            toFill
62        , const XMLSize_t               maxChars
63        ,       XMLSize_t&              bytesEaten
64        ,       unsigned char* const    charSizes
65    );
66
67    virtual XMLSize_t transcodeFrom
68    (
69        const   XMLByte* const          srcData
70        , const XMLSize_t               srcCount
71        ,       XMLCh* const            toFill
72        , const XMLSize_t               maxChars
73        ,       XMLSize_t&              bytesEaten
74    );
75
76    virtual XMLSize_t transcodeFrom
77    (
78          const XMLByte* const          srcData
79        , const XMLSize_t               srcCount
80        ,       XMLBuffer &             toFill
81    );
82
83    virtual XMLSize_t transcodeTo
84    (
85        const   XMLCh* const    srcData
86        , const XMLSize_t       srcCount
87        ,       XMLByte* const  toFill
88        , const XMLSize_t       maxBytes
89        ,       XMLSize_t&      charsEaten
90        , const UnRepOpts       options
91    );
92
93    virtual bool canTranscodeTo
94    (
95        const   unsigned int    toCheck
96    );
97
98
99private :
100    // -----------------------------------------------------------------------
101    //  Unimplemented constructors and operators
102    // -----------------------------------------------------------------------
103    XML88591Transcoder(const XML88591Transcoder&);
104    XML88591Transcoder& operator=(const XML88591Transcoder&);
105};
106
107XERCES_CPP_NAMESPACE_END
108
109#endif
Note: See TracBrowser for help on using the repository browser.