kget
metalinker.cpp
Go to the documentation of this file.
43 const QString KGetMetalink::Metalink::KGET_DESCRIPTION = QString(QString("KGet/") + "2." + QString::number(KDE_VERSION_MINOR) + '.' + QString::number(KDE_VERSION_RELEASE));
45 const uint KGetMetalink::Metalink_v3::MAX_PREFERENCE = 100;//as defined in Metalink specification 3.0 2nd edition
75 void KGetMetalink::DateConstruct::setData(const QDateTime &dateT, const QTime &timeZoneOff, bool negOff)
168 for (QDomElement elemRes = e.firstChildElement("language"); !elemRes.isNull(); elemRes = elemRes.nextSiblingElement("language")) {
172 for (QDomElement elemRes = e.firstChildElement("os"); !elemRes.isNull(); elemRes = elemRes.nextSiblingElement("os")) {
355 bool smaller = (this->priority > other.priority) || ((this->priority == 0) && (other.priority != 0));
409 for (QDomElement elem = e.firstChildElement("url"); !elem.isNull(); elem = elem.nextSiblingElement("url"))
419 for (QDomElement elem = e.firstChildElement("metaurl"); !elem.isNull(); elem = elem.nextSiblingElement("metaurl"))
490 for (QDomElement elem = e.firstChildElement("hash"); !elem.isNull(); elem = elem.nextSiblingElement("hash")) {
499 for (QDomElement elem = e.firstChildElement("pieces"); !elem.isNull(); elem = elem.nextSiblingElement("pieces")) {
505 for (QDomElement elem = e.firstChildElement("signature"); !elem.isNull(); elem = elem.nextSiblingElement("signature")) {
507 if (type == "application/pgp-signature") {//FIXME with 4.5 make it handle signatures by default with mime-type
619 kError(5001) << "Name attribute of Metalink::File contains directory traversal directives:" << name;
661 for (QDomElement elem = e.firstChildElement("file"); !elem.isNull(); elem = elem.nextSiblingElement("file"))
725 QDomProcessingInstruction header = doc.createProcessingInstruction("xml", "version=\"1.0\" encoding=\"UTF-8\"");
729 metalink.setAttribute("xmlns", "urn:ietf:params:xml:ns:metalink"); //the xmlns value is ignored, instead the data format described in the specification is always used
732 QDomText text = doc.createTextNode(Metalink::KGET_DESCRIPTION); //the set generator is ignored, instead when saving KGET is always used
815 for (QDomElement elem = filesElem.firstChildElement("file"); !elem.isNull(); elem = elem.nextSiblingElement("file")) {
828 for (QDomElement elemVer = veriE.firstChildElement("hash"); !elemVer.isNull(); elemVer = elemVer.nextSiblingElement("hash")) {
837 for (QDomElement elemVer = veriE.firstChildElement("pieces"); !elemVer.isNull(); elemVer = elemVer.nextSiblingElement("pieces")) {
843 for (QDomElement elemVer = veriE.firstChildElement("signature"); !elemVer.isNull(); elemVer = elemVer.nextSiblingElement("signature")) {
868 void KGetMetalink::Metalink_v3::inheritCommonData(const KGetMetalink::CommonData &ancestor, KGetMetalink::CommonData *inheritor)
906 for (QDomElement elemRes = res.firstChildElement("url"); !elemRes.isNull(); elemRes = elemRes.nextSiblingElement("url")) {
1035 QDomProcessingInstruction header = doc.createProcessingInstruction("xml", "version=\"1.0\" encoding=\"UTF-8\"");
1042 metalink.setAttribute("generator", Metalink::KGET_DESCRIPTION); //the set generator is ignored, instead when saving KGET is always used
1085 void KGetMetalink::Metalink_v3::saveResources(const Resources &resources, QDomElement &e) const
1133 void KGetMetalink::Metalink_v3::saveVerification(const KGetMetalink::Verification &verification, QDomElement &e) const
1178 void KGetMetalink::Metalink_v3::saveCommonData(const KGetMetalink::CommonData &data, QDomElement &e) const
1209 QString KGetMetalink::Metalink_v3::dateConstructToString(const KGetMetalink::DateConstruct &date) const
1232 bool KGetMetalink::HandleMetalink::load(const KUrl &destination, KGetMetalink::Metalink *metalink)
1254 else if ((root.attribute("xmlns") == "http://www.metalinker.org/") || (root.attribute("version") == "3.0"))
1265 bool KGetMetalink::HandleMetalink::load(const QByteArray &data, KGetMetalink::Metalink *metalink)
1285 else if ((root.attribute("xmlns") == "http://www.metalinker.org/") || (root.attribute("version") == "3.0"))
1296 bool KGetMetalink::HandleMetalink::save(const KUrl &destination, KGetMetalink::Metalink *metalink)
1324 void KGetMetalink::HandleMetalink::addProperty(QList<QPair<QUrl, Nepomuk2::Variant> > *data, const QByteArray &uriBa, const QString &value)
1331 void KGetMetalink::HandleMetalink::addProperty(QList<QPair<QUrl, Nepomuk2::Variant> > *data, const QUrl &uri, const QString &value)
1362 connect(job, SIGNAL(redirection(KIO::Job*,KUrl)), this, SLOT(slotRedirection(KIO::Job*,KUrl))); // Redirection
1363 connect(job,SIGNAL(mimetype(KIO::Job*,QString)),this,SLOT(detectMime(KIO::Job*,QString))); // Mime detection.
void clear()
QDomNodeList elementsByTagName(const QString &tagname) const
QString addaptHashType(const QString &type, bool loaded)
Adapts type to the way the hash is internally stored.
Definition: metalinker.cpp:60
int indexOf(QChar ch, int from, Qt::CaseSensitivity cs) const
static bool load(const KUrl &destination, Metalink *metalink)
Loads destination into metalink.
Definition: metalinker.cpp:1232
QString & append(QChar ch)
Definition: metalinker.h:120
QDomProcessingInstruction createProcessingInstruction(const QString &target, const QString &data)
bool operator<(const HttpLinkHeader &) const
Definition: metalinker.cpp:1472
const Key key(const T &value) const
Definition: metalinker.h:419
void setData(const QDateTime &dateTime, const QTime &timeZoneOffset=QTime(), bool negativeOffset=false)
Definition: metalinker.cpp:75
QString toString(Qt::DateFormat format) const
QDomNode appendChild(const QDomNode &newChild)
QString toString(qlonglong i) const
static const QString KGET_DESCRIPTION
Definition: metalinker.h:331
QString attribute(const QString &name, const QString &defValue) const
QStringList split(const QString &sep, SplitBehavior behavior, Qt::CaseSensitivity cs) const
QMultiMap< QString, QString > * getHeaderInfo()
Definition: metalinker.cpp:1461
Definition: metalinker.h:156
bool isNull() const
void setTime(const QTime &time)
bool contains(const QString &str, Qt::CaseSensitivity cs) const
bool isEmpty() const
bool isValid() const
HttpLinkHeader(const QString &headerLine)
Definition: metalinker.cpp:1466
QTime fromString(const QString &string, Qt::DateFormat format)
QHash< QString, QString > signatures
Definition: metalinker.h:236
QDomElement documentElement() const
bool operator<(const Url &other) const
"smaller" urls are less important than larger, larger urls should be preffered
Definition: metalinker.cpp:353
bool isEmpty() const
Definition: metalinker.h:239
void setMetalink(const Metalink &metalink)
Definition: metalinker.cpp:785
uint priority
the priority of the urls, 1 is highest priority, 999999 lowest default is 0 as in not set and thus is...
Definition: metalinker.h:180
QDomElement toElement() const
bool isValidNameAttribute() const
Controls if the name attribute is valid, i.e.
Definition: metalinker.cpp:605
QLocale c()
int count() const
QString number(int n, int base)
int count(const T &value) const
const_iterator constEnd() const
QDomDocument ownerDocument() const
QString text() const
bool hasAttribute(const QString &name) const
static bool save(const KUrl &destination, Metalink *metalink)
Saves metalink to destination.
Definition: metalinker.cpp:1296
void setAttribute(const QString &name, const QString &value)
void clear()
Return all Nepomuk-properties that can be extracted of Files only Files is being looked at...
Definition: metalinker.cpp:682
int toInt(bool *ok, int base) const
bool isEmpty() const
bool isEmpty() const
QString trimmed() const
bool isValid() const
QTime addSecs(int s) const
void setDate(const QDate &date)
bool operator<(const Metaurl &other) const
"smaller" urls are less important than larger, larger urls should be preffered
Definition: metalinker.cpp:304
bool endsWith(const QString &s, Qt::CaseSensitivity cs) const
Definition: metalinker.h:299
qulonglong toULongLong(bool *ok, int base) const
QString fromPercentEncoding(const QByteArray &input)
void parseHeaderLine(const QString &)
Loads information from a header value into metalink header structure.
Definition: metalinker.cpp:1477
static const uint MAX_URL_PRIORITY
Definition: metalinker.h:332
Files, File and Metadata contain this Metadata not as member and only for compatibility.
Definition: metalinker.h:93
QDomText createTextNode(const QString &value)
QString toLower() const
const T value(const Key &key) const
bool contains(QChar ch, Qt::CaseSensitivity cs) const
QDateTime fromString(const QString &string, Qt::DateFormat format)
uint priority
the priority of the urls, 1 is highest priority, 999999 lowest default is 0 as in not set and thus is...
Definition: metalinker.h:146
bool isNull() const
QString & replace(int position, int n, QChar after)
void clear()
const_iterator constBegin() const
void save(QTextStream &str, int indent) const
QString mid(int position, int n) const
T takeFirst()
QDate toDate(const QString &string, FormatType format) const
Definition: metalinker.h:206
~MetalinkHttpParser()
Definition: metalinker.cpp:1340
QDomElement firstChildElement(const QString &tagName) const
bool isValid() const
checks if the minimum requirements of a metalink are met
Definition: metalinker.cpp:687
Definition: metalinker.h:478
Metalink version 3.0 2nd ed Used only for loading and saving, uses itself Metalink internally...
Definition: metalinker.h:340
Definition: metalinker.h:50
int length() const
QStringList split(const QString &sep, const QString &str, bool allowEmptyEntries)
QString left(int n) const
Definition: metalinker.h:190
QDomElement createElement(const QString &tagName)
Definition: metalinker.h:224
QUrl fromEncoded(const QByteArray &input)
QByteArray toAscii() const
bool setContent(const QByteArray &data, bool namespaceProcessing, QString *errorMsg, int *errorLine, int *errorColumn)
QDomNode at(int index) const
uint toUInt(bool *ok, int base) const
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Mon Jun 22 2020 13:28:43 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006
Documentation copyright © 1996-2020 The KDE developers.
Generated on Mon Jun 22 2020 13:28:43 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006
KDE's Doxygen guidelines are available online.