diff options
Diffstat (limited to 'examples/network/torrent/bencodeparser.cpp')
-rw-r--r-- | examples/network/torrent/bencodeparser.cpp | 200 |
1 files changed, 100 insertions, 100 deletions
diff --git a/examples/network/torrent/bencodeparser.cpp b/examples/network/torrent/bencodeparser.cpp index 2abc41a852..6ef7234539 100644 --- a/examples/network/torrent/bencodeparser.cpp +++ b/examples/network/torrent/bencodeparser.cpp @@ -81,26 +81,26 @@ bool BencodeParser::getByteString(QByteArray *byteString) const int contentSize = content.size(); int size = -1; do { - char c = content.at(index); - if (c < '0' || c > '9') { - if (size == -1) - return false; - if (c != ':') { - errString = QString("Unexpected character at pos %1: %2") - .arg(index).arg(c); - return false; - } - ++index; - break; - } - if (size == -1) - size = 0; - size *= 10; - size += c - '0'; + char c = content.at(index); + if (c < '0' || c > '9') { + if (size == -1) + return false; + if (c != ':') { + errString = QString("Unexpected character at pos %1: %2") + .arg(index).arg(c); + return false; + } + ++index; + break; + } + if (size == -1) + size = 0; + size *= 10; + size += c - '0'; } while (++index < contentSize); if (byteString) - *byteString = content.mid(index, size); + *byteString = content.mid(index, size); index += size; return true; } @@ -109,38 +109,38 @@ bool BencodeParser::getInteger(qint64 *integer) { const int contentSize = content.size(); if (content.at(index) != 'i') - return false; + return false; ++index; qint64 num = -1; bool negative = false; do { - char c = content.at(index); - if (c < '0' || c > '9') { - if (num == -1) { - if (c != '-' || negative) - return false; - negative = true; - continue; - } else { - if (c != 'e') { - errString = QString("Unexpected character at pos %1: %2") - .arg(index).arg(c); - return false; - } - ++index; - break; - } - } - if (num == -1) - num = 0; - num *= 10; - num += c - '0'; + char c = content.at(index); + if (c < '0' || c > '9') { + if (num == -1) { + if (c != '-' || negative) + return false; + negative = true; + continue; + } else { + if (c != 'e') { + errString = QString("Unexpected character at pos %1: %2") + .arg(index).arg(c); + return false; + } + ++index; + break; + } + } + if (num == -1) + num = 0; + num *= 10; + num += c - '0'; } while (++index < contentSize); if (integer) - *integer = negative ? -num : num; + *integer = negative ? -num : num; return true; } @@ -148,38 +148,38 @@ bool BencodeParser::getList(QList<QVariant> *list) { const int contentSize = content.size(); if (content.at(index) != 'l') - return false; + return false; - QList<QVariant> tmp; + QList<QVariant> tmp; ++index; do { - if (content.at(index) == 'e') { - ++index; - break; - } - - qint64 number; - QByteArray byteString; - QList<QVariant> tmpList; - QMap<QByteArray, QVariant> dictionary; - - if (getInteger(&number)) - tmp << number; - else if (getByteString(&byteString)) - tmp << byteString; - else if (getList(&tmpList)) - tmp << tmpList; - else if (getDictionary(&dictionary)) - tmp << QVariant::fromValue<QMap<QByteArray, QVariant> >(dictionary); - else { - errString = QString("error at index %1").arg(index); - return false; - } + if (content.at(index) == 'e') { + ++index; + break; + } + + qint64 number; + QByteArray byteString; + QList<QVariant> tmpList; + QMap<QByteArray, QVariant> dictionary; + + if (getInteger(&number)) + tmp << number; + else if (getByteString(&byteString)) + tmp << byteString; + else if (getList(&tmpList)) + tmp << tmpList; + else if (getDictionary(&dictionary)) + tmp << QVariant::fromValue<QMap<QByteArray, QVariant> >(dictionary); + else { + errString = QString("error at index %1").arg(index); + return false; + } } while (index < contentSize); if (list) - *list = tmp; + *list = tmp; return true; } @@ -187,48 +187,48 @@ bool BencodeParser::getDictionary(QMap<QByteArray, QVariant> *dictionary) { const int contentSize = content.size(); if (content.at(index) != 'd') - return false; + return false; - QMap<QByteArray, QVariant> tmp; + QMap<QByteArray, QVariant> tmp; ++index; do { - if (content.at(index) == 'e') { - ++index; - break; - } - - QByteArray key; - if (!getByteString(&key)) - break; - - if (key == "info") - infoStart = index; - - qint64 number; - QByteArray byteString; - QList<QVariant> tmpList; - QMap<QByteArray, QVariant> dictionary; - - if (getInteger(&number)) - tmp.insert(key, number); - else if (getByteString(&byteString)) - tmp.insert(key, byteString); - else if (getList(&tmpList)) - tmp.insert(key, tmpList); - else if (getDictionary(&dictionary)) - tmp.insert(key, QVariant::fromValue<QMap<QByteArray, QVariant> >(dictionary)); - else { - errString = QString("error at index %1").arg(index); - return false; - } - - if (key == "info") - infoLength = index - infoStart; + if (content.at(index) == 'e') { + ++index; + break; + } + + QByteArray key; + if (!getByteString(&key)) + break; + + if (key == "info") + infoStart = index; + + qint64 number; + QByteArray byteString; + QList<QVariant> tmpList; + QMap<QByteArray, QVariant> dictionary; + + if (getInteger(&number)) + tmp.insert(key, number); + else if (getByteString(&byteString)) + tmp.insert(key, byteString); + else if (getList(&tmpList)) + tmp.insert(key, tmpList); + else if (getDictionary(&dictionary)) + tmp.insert(key, QVariant::fromValue<QMap<QByteArray, QVariant> >(dictionary)); + else { + errString = QString("error at index %1").arg(index); + return false; + } + + if (key == "info") + infoLength = index - infoStart; } while (index < contentSize); if (dictionary) - *dictionary = tmp; + *dictionary = tmp; return true; } |