// Copyright 2008 Simon Edwards <simon@simonzone.com>

//                 Generated by twine

// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU Library General Public License as
// published by the Free Software Foundation; either version 2, or
// (at your option) any later version.

// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details

// You should have received a copy of the GNU Library General Public
// License along with this program; if not, write to the
// Free Software Foundation, Inc.,
// 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.



class KEncodingProber
{
%TypeHeaderCode
#include <kencodingprober.h>
%End


public:

    enum ProberState
    {
        FoundIt,
        NotMe,
        Probing
    };


    enum ProberType
    {
        None,
        Universal,
        Arabic,
        Baltic,
        CentralEuropean,
        ChineseSimplified,
        ChineseTraditional,
        Cyrillic,
        Greek,
        Hebrew,
        Japanese,
        Korean,
        NorthernSaami,
        Other,
        SouthEasternEurope,
        Thai,
        Turkish,
        Unicode,
        WesternEuropean
    };

                            KEncodingProber (KEncodingProber::ProberType proberType = KEncodingProber::Universal);
    void                    reset ();
    KEncodingProber::ProberState  feed (const QByteArray& data);
    KEncodingProber::ProberState  feed (const char* data, int len);
    KEncodingProber::ProberState  state () const;
    const char*             encodingName () const;
    QByteArray              encoding () const;
    float                   confidence () const;
    KEncodingProber::ProberType  proberType () const;
    void                    setProberType (KEncodingProber::ProberType proberType);
    static KEncodingProber::ProberType  proberTypeForName (const QString& lang);
    static QString          nameForProberType (KEncodingProber::ProberType proberType);

private:
    KEncodingProber(const KEncodingProber & other);

};   // KEncodingProber


