%Feature PROXY_FACTORY /* * \class QgsNetworkAccessManager * \brief network access manager for QGIS * \ingroup core * \since 1.5 * * This class implements the QGIS network access manager. It's a singleton * that can be used across QGIS. * * Plugins can insert proxy factories and thereby redirect requests to * individual proxies. * * If no proxy factories are there or none returns a proxy for an URL a * fallback proxy can be set. There's also a exclude list that defines URLs * that the fallback proxy should not be used for, then no proxy will be used. * */ class QgsNetworkAccessManager : QNetworkAccessManager { %TypeHeaderCode #include %End public: //! returns a pointer to the single instance // and creates that instance on the first call. static QgsNetworkAccessManager *instance(); //! destructor ~QgsNetworkAccessManager(); %If (PROXY_FACTORY) //! insert a factory into the proxy factories list void insertProxyFactory( QNetworkProxyFactory *factory /Transfer/ ); //! remove a factory from the proxy factories list void removeProxyFactory( QNetworkProxyFactory *factory /TransferBack/ ); //! retrieve proxy factory list const QList proxyFactories() const; %End //! retrieve fall back proxy (for urls that no factory returned proxies for) const QNetworkProxy &fallbackProxy() const; //! retrieve exclude list (urls shouldn't use the fallback proxy) const QStringList &excludeList() const; //! set fallback proxy and URL that shouldn't use it. void setFallbackProxyAndExcludes( const QNetworkProxy &proxy, const QStringList &excludes ); //! Get name for QNetworkRequest::CacheLoadControl static QString cacheLoadControlName( QNetworkRequest::CacheLoadControl theControl ); //! Get QNetworkRequest::CacheLoadControl from name static QNetworkRequest::CacheLoadControl cacheLoadControlFromName( const QString &theName ); //! Setup the NAM according to the user's settings void setupDefaultProxyAndCache(); //! return whether the system proxy should be used bool useSystemProxy(); public slots: /** Send GET request, calls get(). * Emits requestSent(). * @param request request to be sent * @deprecated use get() directly */ void sendGet( const QNetworkRequest & request ) /Deprecated/; /** Abort and delete reply. * @param reply reply to be aborted. * @deprecated use abort() and deleteLayer() on the reply directly */ void deleteReply( QNetworkReply * reply ) /Deprecated/; signals: void requestAboutToBeCreated( QNetworkAccessManager::Operation, const QNetworkRequest &, QIODevice * ); void requestCreated( QNetworkReply * ); void requestTimedOut( QNetworkReply * ); /** Emitted when request was sent by request() * @param reply request reply * @param sender the object which called request() slot. * @deprecated only emitted from deprecated sendGet */ void requestSent( QNetworkReply * reply, QObject *sender ); protected: virtual QNetworkReply *createRequest( QNetworkAccessManager::Operation op, const QNetworkRequest &req, QIODevice *outgoingData = 0 ); private: QgsNetworkAccessManager( QObject *parent = 0 ); };