00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef QGSNETWORKACCESSMANAGER_H
00020 #define QGSNETWORKACCESSMANAGER_H
00021
00022 #include <QList>
00023 #include <QStringList>
00024 #include <QNetworkAccessManager>
00025 #include <QNetworkProxy>
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044 class CORE_EXPORT QgsNetworkAccessManager : public QNetworkAccessManager
00045 {
00046 Q_OBJECT
00047
00048 public:
00050
00051 static QgsNetworkAccessManager *instance();
00052
00054 ~QgsNetworkAccessManager();
00055
00056 #if QT_VERSION >= 0x40500
00058 void insertProxyFactory( QNetworkProxyFactory *factory );
00059
00061 void removeProxyFactory( QNetworkProxyFactory *factory );
00062
00064 const QList<QNetworkProxyFactory *> proxyFactories() const;
00065 #endif
00066
00068 const QNetworkProxy &fallbackProxy() const;
00069
00071 const QStringList &excludeList() const;
00072
00074 void setFallbackProxyAndExcludes( const QNetworkProxy &proxy, const QStringList &excludes );
00075
00076 signals:
00077 void requestAboutToBeCreated( QNetworkAccessManager::Operation, const QNetworkRequest &, QIODevice * );
00078 void requestCreated( QNetworkReply * );
00079
00080 protected:
00081 virtual QNetworkReply *createRequest( QNetworkAccessManager::Operation op, const QNetworkRequest & req, QIODevice * outgoingData = 0 );
00082
00083 private:
00084 QgsNetworkAccessManager( QObject *parent = 0 );
00085 #if QT_VERSION >= 0x40500
00086 QList<QNetworkProxyFactory*> mProxyFactories;
00087 #endif
00088 QNetworkProxy mFallbackProxy;
00089 QStringList mExcludedURLs;
00090
00091 static QgsNetworkAccessManager *smNAM;
00092 };
00093
00094 #endif // QGSNETWORKACCESSMANAGER_H