1fe71893183f504feff290e343bf740bd32432129Chris Lattner/*
26cefb77a7073057fecd721ae141140d75ce76512Chris Lattner * Copyright (C) 2004, 2006 Apple Computer, Inc.  All rights reserved.
36cefb77a7073057fecd721ae141140d75ce76512Chris Lattner *
46cefb77a7073057fecd721ae141140d75ce76512Chris Lattner * Redistribution and use in source and binary forms, with or without
56cefb77a7073057fecd721ae141140d75ce76512Chris Lattner * modification, are permitted provided that the following conditions
66cefb77a7073057fecd721ae141140d75ce76512Chris Lattner * are met:
76cefb77a7073057fecd721ae141140d75ce76512Chris Lattner * 1. Redistributions of source code must retain the above copyright
86cefb77a7073057fecd721ae141140d75ce76512Chris Lattner *    notice, this list of conditions and the following disclaimer.
96cefb77a7073057fecd721ae141140d75ce76512Chris Lattner * 2. Redistributions in binary form must reproduce the above copyright
10fe71893183f504feff290e343bf740bd32432129Chris Lattner *    notice, this list of conditions and the following disclaimer in the
116cefb77a7073057fecd721ae141140d75ce76512Chris Lattner *    documentation and/or other materials provided with the distribution.
126cefb77a7073057fecd721ae141140d75ce76512Chris Lattner *
136cefb77a7073057fecd721ae141140d75ce76512Chris Lattner * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
146cefb77a7073057fecd721ae141140d75ce76512Chris Lattner * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
1593c7e418257bd65fcf8f5d9faa9487dd99358430Chris Lattner * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
162cacec55f947c716b058a39038889550d7e39b3cChris Lattner * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR
174ffd89fa4d2788611187d1a534d2ed46adf1702cChandler Carruth * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
189b29ea4eb39b5f03ef2405c6355a9c627771c5ddJim Grosbach * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
196cefb77a7073057fecd721ae141140d75ce76512Chris Lattner * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
20fdebc38523b397743973ff6a2d2e93b112dd96e5David Blaikie * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
214ffd89fa4d2788611187d1a534d2ed46adf1702cChandler Carruth * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
224ffd89fa4d2788611187d1a534d2ed46adf1702cChandler Carruth * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
239a79de3d091978cfee5264ee2563fc5dedd33cb7Chuck Rose III * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24901b85888c2de6bf982c47ab69b7e83908b6a216Benjamin Kramer */
25901b85888c2de6bf982c47ab69b7e83908b6a216Benjamin Kramer
266cefb77a7073057fecd721ae141140d75ce76512Chris Lattner#ifndef TextCodecLatin1_h
276cefb77a7073057fecd721ae141140d75ce76512Chris Lattner#define TextCodecLatin1_h
28dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines
29dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines#include "wtf/text/TextCodec.h"
306cefb77a7073057fecd721ae141140d75ce76512Chris Lattner
312cacec55f947c716b058a39038889550d7e39b3cChris Lattnernamespace WTF {
322cacec55f947c716b058a39038889550d7e39b3cChris Lattner
336cefb77a7073057fecd721ae141140d75ce76512Chris Lattnerclass TextCodecLatin1 final : public TextCodec {
34825b72b0571821bf2d378749f69d6c4cfb52d2f9Owen Andersonpublic:
3549909415ca9c674a459718895e8e99053e11f143Craig Topper    static void registerEncodingNames(EncodingNameRegistrar);
3683ec4b6711980242ef3c55a4fa36b2d7a39c1bfbDuncan Sands    static void registerCodecs(TextCodecRegistrar);
37825b72b0571821bf2d378749f69d6c4cfb52d2f9Owen Anderson
3849909415ca9c674a459718895e8e99053e11f143Craig Topperprivate:
3983ec4b6711980242ef3c55a4fa36b2d7a39c1bfbDuncan Sands    virtual String decode(const char*, size_t length, FlushBehavior, bool stopOnError, bool& sawError) override;
40825b72b0571821bf2d378749f69d6c4cfb52d2f9Owen Anderson    virtual CString encode(const UChar*, size_t length, UnencodableHandling) override;
4149909415ca9c674a459718895e8e99053e11f143Craig Topper    virtual CString encode(const LChar*, size_t length, UnencodableHandling) override;
4283ec4b6711980242ef3c55a4fa36b2d7a39c1bfbDuncan Sands
43774ce29399364823dba62217ebf7bc8701005140Chris Lattner    template<typename CharType>
4449909415ca9c674a459718895e8e99053e11f143Craig Topper    CString encodeCommon(const CharType*, size_t length, UnencodableHandling);
45774ce29399364823dba62217ebf7bc8701005140Chris Lattner};
4683ec4b6711980242ef3c55a4fa36b2d7a39c1bfbDuncan Sands
472cacec55f947c716b058a39038889550d7e39b3cChris Lattner} // namespace WTF
482cacec55f947c716b058a39038889550d7e39b3cChris Lattner
492cacec55f947c716b058a39038889550d7e39b3cChris Lattner#endif // TextCodecLatin1_h
502cacec55f947c716b058a39038889550d7e39b3cChris Lattner