diff --git a/src/blackmisc/network/registermetadatanetwork.cpp b/src/blackmisc/network/registermetadatanetwork.cpp index f07a1e574..2549440b8 100644 --- a/src/blackmisc/network/registermetadatanetwork.cpp +++ b/src/blackmisc/network/registermetadatanetwork.cpp @@ -28,6 +28,7 @@ namespace BlackMisc CTextMessageList::registerMetadata(); CUrl::registerMetadata(); CUrlList::registerMetadata(); + CFailoverUrlList::registerMetadata(); CUser::registerMetadata(); CUserList::registerMetadata(); CVoiceCapabilities::registerMetadata(); diff --git a/src/blackmisc/network/url.cpp b/src/blackmisc/network/url.cpp index cb8ea16ab..347298415 100644 --- a/src/blackmisc/network/url.cpp +++ b/src/blackmisc/network/url.cpp @@ -56,6 +56,12 @@ namespace BlackMisc return m_path; } + int CUrl::getPort() const + { + if (m_port > 0) { return m_port; } + return protocolToDefaultPort(this->getScheme()); + } + bool CUrl::hasPort() const { return m_port >= 0; @@ -128,6 +134,11 @@ namespace BlackMisc this->setQuery(url.query()); } + QNetworkRequest CUrl::toNetworkRequest() const + { + return QNetworkRequest(this->toQUrl()); + } + CUrl CUrl::withAppendedPath(const QString &path) const { if (path.isEmpty()) { return *this; } diff --git a/src/blackmisc/network/url.h b/src/blackmisc/network/url.h index a51d3237f..c8a6e6c2c 100644 --- a/src/blackmisc/network/url.h +++ b/src/blackmisc/network/url.h @@ -15,6 +15,7 @@ #include "blackmisc/blackmiscexport.h" #include "blackmisc/valueobject.h" #include +#include namespace BlackMisc { @@ -75,7 +76,7 @@ namespace BlackMisc bool hasPath() const { return !m_path.isEmpty(); } //! Get port - int getPort() const { return m_port; } + int getPort() const; //! Set port void setPort(int port) { m_port = port; } @@ -113,6 +114,9 @@ namespace BlackMisc //! To QUrl void setQUrl(const QUrl &url); + //! To request + QNetworkRequest toNetworkRequest() const; + //! Append path CUrl withAppendedPath(const QString &path) const; diff --git a/src/blackmisc/network/urllist.cpp b/src/blackmisc/network/urllist.cpp index 881c07f44..ae7336f1a 100644 --- a/src/blackmisc/network/urllist.cpp +++ b/src/blackmisc/network/urllist.cpp @@ -163,6 +163,10 @@ namespace BlackMisc CUrlList(other), m_maxTrials(maxTrials) { } + CFailoverUrlList::CFailoverUrlList(const CUrlList &urlIst) : + CUrlList(urlIst) + { } + CUrlList CFailoverUrlList::getWithoutFailed() const { CUrlList urls(*this); diff --git a/src/blackmisc/network/urllist.h b/src/blackmisc/network/urllist.h index d0fbbde22..efd431f70 100644 --- a/src/blackmisc/network/urllist.h +++ b/src/blackmisc/network/urllist.h @@ -90,6 +90,9 @@ namespace BlackMisc //! Construct from a base class object. CFailoverUrlList(const CSequence &other, int maxTrials = 2); + //! From url list + CFailoverUrlList(const CUrlList &urlIst); + //! All failed URLs const CUrlList &getFailedUrls() const { return m_failedUrls; } @@ -117,6 +120,7 @@ namespace BlackMisc } // namespace Q_DECLARE_METATYPE(BlackMisc::Network::CUrlList) +Q_DECLARE_METATYPE(BlackMisc::Network::CFailoverUrlList) Q_DECLARE_METATYPE(BlackMisc::CCollection) Q_DECLARE_METATYPE(BlackMisc::CSequence)