#include <QNetworkRequest>
#include <QNetworkAccessManager>
#include <QDebug>
+#include <QTimer>
#include "networkhandler.h"
#include "networkaccessmanager.h"
#include "networkreply.h"
+#include "common.h"
NetworkAccessManager *NetworkAccessManager::m_instance = 0;
NetworkAccessManager::NetworkAccessManager()
- : m_networkHandler(0),
+ : m_connected(false),
+ m_networkHandler(0),
m_networkAccessManagerPrivate(0)
{
qDebug() << __PRETTY_FUNCTION__;
connect(m_networkHandler, SIGNAL(connected()),
this, SLOT(connected()));
+ connect(m_networkHandler, SIGNAL(disconnected()),
+ this, SLOT(disconnected()));
connect(m_networkAccessManagerPrivate, SIGNAL(finished(QNetworkReply*)),
this, SLOT(downloadFinished(QNetworkReply*)));
{
qDebug() << __PRETTY_FUNCTION__;
+ m_connected = true;
+
//Loop through all requests and calls get method.
foreach (const QNetworkRequest &request, m_requestQueue) {
QNetworkReply *reply = m_networkAccessManagerPrivate->get(request);
m_requestQueue.clear();
}
+void NetworkAccessManager::disconnected()
+{
+ qDebug() << __PRETTY_FUNCTION__;
+
+ m_connected = false;
+}
+
void NetworkAccessManager::downloadFinished(QNetworkReply *reply)
{
qDebug() << __PRETTY_FUNCTION__;
}
}
-QNetworkReply *NetworkAccessManager::get(const QNetworkRequest &request)
+QNetworkReply *NetworkAccessManager::get(const QNetworkRequest &request, bool onlineRequestsOnly)
{
qDebug() << __PRETTY_FUNCTION__;
m_requestQueue.append(request);
m_networkHandler->connect();
QNetworkReply *reply = new NetworkReply(request, this);
- m_offlineReplyQueue.insert(request.url().toString(), reply);
+
+ if (onlineRequestsOnly) {
+ ((NetworkReply*)reply)->setErrorCode(QNetworkReply::UnknownNetworkError);
+ emit finished(reply);
+ }
+ else {
+ m_offlineReplyQueue.insert(request.url().toString(), reply);
+ }
+
return reply;
}
//Connected, use normal get method.
}
}
-
NetworkAccessManager *NetworkAccessManager::instance()
{
qDebug() << __PRETTY_FUNCTION__;
return m_instance;
}
+bool NetworkAccessManager::isConnected()
+{
+ qDebug() << __PRETTY_FUNCTION__;
+
+ return m_connected;
+}
+
void NetworkAccessManager::setCache(QAbstractNetworkCache *cache)
{
qDebug() << __PRETTY_FUNCTION__;