1// qtextcodec.sip generated by MetaSIP
2//
3// This file is part of the QtCore Python extension module.
4//
5// Copyright (c) 2021 Riverbank Computing Limited <info@riverbankcomputing.com>
6//
7// This file is part of PyQt5.
8//
9// This file may be used under the terms of the GNU General Public License
10// version 3.0 as published by the Free Software Foundation and appearing in
11// the file LICENSE included in the packaging of this file.  Please review the
12// following information to ensure the GNU General Public License version 3.0
13// requirements will be met: http://www.gnu.org/copyleft/gpl.html.
14//
15// If you do not wish to use this file under the terms of the GPL version 3.0
16// then you may purchase a commercial license.  For more information contact
17// info@riverbankcomputing.com.
18//
19// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
20// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
21
22
23class QTextCodec /Supertype=sip.wrapper/
24{
25%TypeHeaderCode
26#include <qtextcodec.h>
27%End
28
29public:
30    static QTextCodec *codecForName(const QByteArray &name);
31    static QTextCodec *codecForName(const char *name);
32    static QTextCodec *codecForMib(int mib);
33    static QTextCodec *codecForHtml(const QByteArray &ba);
34    static QTextCodec *codecForHtml(const QByteArray &ba, QTextCodec *defaultCodec);
35    static QTextCodec *codecForUtfText(const QByteArray &ba);
36    static QTextCodec *codecForUtfText(const QByteArray &ba, QTextCodec *defaultCodec);
37    static QList<QByteArray> availableCodecs();
38    static QList<int> availableMibs();
39    static QTextCodec *codecForLocale();
40    static void setCodecForLocale(QTextCodec *c /KeepReference/);
41    QTextDecoder *makeDecoder(QTextCodec::ConversionFlags flags = QTextCodec::DefaultConversion) const /Factory/;
42    QTextEncoder *makeEncoder(QTextCodec::ConversionFlags flags = QTextCodec::DefaultConversion) const /Factory/;
43    bool canEncode(const QString &) const;
44    QString toUnicode(const QByteArray &) const;
45    QString toUnicode(const char *chars /Encoding="None"/) const;
46    QByteArray fromUnicode(const QString &uc) const;
47
48    enum ConversionFlag
49    {
50        DefaultConversion,
51        ConvertInvalidToNull,
52        IgnoreHeader,
53    };
54
55    typedef QFlags<QTextCodec::ConversionFlag> ConversionFlags;
56
57    struct ConverterState
58    {
59%TypeHeaderCode
60#include <qtextcodec.h>
61%End
62
63        ConverterState(QTextCodec::ConversionFlags flags = QTextCodec::DefaultConversion);
64        ~ConverterState();
65
66    private:
67        ConverterState(const QTextCodec::ConverterState &);
68    };
69
70    QString toUnicode(const char *in /Array/, int length /ArraySize/, QTextCodec::ConverterState *state = 0) const;
71    virtual QByteArray name() const = 0;
72    virtual QList<QByteArray> aliases() const;
73    virtual int mibEnum() const = 0;
74
75protected:
76    virtual QString convertToUnicode(const char *in /Array/, int length /ArraySize/, QTextCodec::ConverterState *state) const = 0;
77    virtual QByteArray convertFromUnicode(const QChar *in /Array/, int length /ArraySize/, QTextCodec::ConverterState *state) const = 0;
78    QTextCodec() /Transfer/;
79    virtual ~QTextCodec();
80
81private:
82    QTextCodec(const QTextCodec &);
83};
84
85QFlags<QTextCodec::ConversionFlag> operator|(QTextCodec::ConversionFlag f1, QFlags<QTextCodec::ConversionFlag> f2);
86
87class QTextEncoder /Supertype=sip.wrapper/
88{
89%TypeHeaderCode
90#include <qtextcodec.h>
91%End
92
93public:
94    explicit QTextEncoder(const QTextCodec *codec);
95    QTextEncoder(const QTextCodec *codec, QTextCodec::ConversionFlags flags);
96    ~QTextEncoder();
97    QByteArray fromUnicode(const QString &str);
98
99private:
100    QTextEncoder(const QTextEncoder &);
101};
102
103class QTextDecoder /Supertype=sip.wrapper/
104{
105%TypeHeaderCode
106#include <qtextcodec.h>
107%End
108
109public:
110    explicit QTextDecoder(const QTextCodec *codec);
111    QTextDecoder(const QTextCodec *codec, QTextCodec::ConversionFlags flags);
112    ~QTextDecoder();
113    QString toUnicode(const char *chars /Array/, int len /ArraySize/);
114    QString toUnicode(const QByteArray &ba);
115
116private:
117    QTextDecoder(const QTextDecoder &);
118};
119