source: icXML/icXML-devel/src/icxercesc/util/XMLASCIITranscoder.hpp @ 2720

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

Initial check-in of icXML 0.8 source files

File size: 3.4 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: XMLASCIITranscoder.hpp 932887 2010-04-11 13:04:59Z borisk $
20 */
21
22#if !defined(XERCESC_INCLUDE_GUARD_XMLASCIITRANSCODER_HPP)
23#define XERCESC_INCLUDE_GUARD_XMLASCIITRANSCODER_HPP
24
25#include <xercesc/util/XercesDefs.hpp>
26#include <xercesc/util/TransService.hpp>
27
28XERCES_CPP_NAMESPACE_BEGIN
29
30//
31//  This class provides an implementation of the XMLTranscoder interface
32//  for a simple ASCII 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 XMLASCIITranscoder : public XMLTranscoder
39{
40public :
41    // -----------------------------------------------------------------------
42    //  Constructors and destructor
43    // -----------------------------------------------------------------------
44    XMLASCIITranscoder
45    (
46        const   XMLCh* const   encodingName
47        , const XMLSize_t      blockSize
48        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
49    );
50
51    virtual ~XMLASCIITranscoder();
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        ,       XMLBuffer &             toFill
72    );
73
74    virtual XMLSize_t transcodeTo
75    (
76        const   XMLCh* const    srcData
77        , const XMLSize_t       srcCount
78        ,       XMLByte* const  toFill
79        , const XMLSize_t       maxBytes
80        ,       XMLSize_t&      charsEaten
81        , const UnRepOpts       options
82    );
83
84    virtual bool canTranscodeTo
85    (
86        const   unsigned int    toCheck
87    );
88
89
90private :
91    // -----------------------------------------------------------------------
92    //  Unimplemented constructors and operators
93    // -----------------------------------------------------------------------
94    XMLASCIITranscoder(const XMLASCIITranscoder&);
95    XMLASCIITranscoder& operator=(const XMLASCIITranscoder&);
96};
97
98XERCES_CPP_NAMESPACE_END
99
100#endif
Note: See TracBrowser for help on using the repository browser.