Revision control
++ // Copyright (C) 2016 The Qt Company Ltd.
++ // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
++
++ #ifndef BENCODEPARSER_H
++ #define BENCODEPARSER_H
++
++ #include <QByteArray>
++ #include <QMap>
++ #include <QString>
++ #include <QVariant>
++ #include <QList>
++
++ typedef QMap<QByteArray,QVariant> Dictionary;
++ Q_DECLARE_METATYPE(Dictionary)
++
++ class BencodeParser
++ {
++ public:
++ BencodeParser();
++
++ bool parse(const QByteArray &content);
++ QString errorString() const;
++
++ QMap<QByteArray, QVariant> dictionary() const;
++ QByteArray infoSection() const;
++
++ private:
++ bool getByteString(QByteArray *byteString);
++ bool getInteger(qint64 *integer);
++ bool getList(QList<QVariant> *list);
++ bool getDictionary(QMap<QByteArray, QVariant> *dictionary);
++
++ QMap<QByteArray, QVariant> dictionaryValue;
++
++ QString errString;
++ QByteArray content;
++ int index;
++
++ int infoStart;
++ int infoLength;
++ };
++
++ #endif