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