123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227 |
- #ifndef QNETWORKPROXY_H
- #define QNETWORKPROXY_H
- #include <QtNetwork/qhostaddress.h>
- #include <QtNetwork/qnetworkrequest.h>
- #include <QtCore/qshareddata.h>
- #ifndef QT_NO_NETWORKPROXY
- QT_BEGIN_NAMESPACE
- class QUrl;
- class QNetworkConfiguration;
- class QNetworkProxyQueryPrivate;
- class Q_NETWORK_EXPORT QNetworkProxyQuery
- {
- public:
- enum QueryType {
- TcpSocket,
- UdpSocket,
- TcpServer = 100,
- UrlRequest
- };
- QNetworkProxyQuery();
- explicit QNetworkProxyQuery(const QUrl &requestUrl, QueryType queryType = UrlRequest);
- QNetworkProxyQuery(const QString &hostname, int port, const QString &protocolTag = QString(),
- QueryType queryType = TcpSocket);
- explicit QNetworkProxyQuery(quint16 bindPort, const QString &protocolTag = QString(),
- QueryType queryType = TcpServer);
- #ifndef QT_NO_BEARERMANAGEMENT
- QNetworkProxyQuery(const QNetworkConfiguration &networkConfiguration,
- const QUrl &requestUrl, QueryType queryType = UrlRequest);
- QNetworkProxyQuery(const QNetworkConfiguration &networkConfiguration,
- const QString &hostname, int port, const QString &protocolTag = QString(),
- QueryType queryType = TcpSocket);
- QNetworkProxyQuery(const QNetworkConfiguration &networkConfiguration,
- quint16 bindPort, const QString &protocolTag = QString(),
- QueryType queryType = TcpServer);
- #endif
- QNetworkProxyQuery(const QNetworkProxyQuery &other);
- #ifdef Q_COMPILER_RVALUE_REFS
- QNetworkProxyQuery &operator=(QNetworkProxyQuery &&other) Q_DECL_NOTHROW { swap(other); return *this; }
- #endif
- QNetworkProxyQuery &operator=(const QNetworkProxyQuery &other);
- ~QNetworkProxyQuery();
- void swap(QNetworkProxyQuery &other) Q_DECL_NOTHROW { qSwap(d, other.d); }
- bool operator==(const QNetworkProxyQuery &other) const;
- inline bool operator!=(const QNetworkProxyQuery &other) const
- { return !(*this == other); }
- QueryType queryType() const;
- void setQueryType(QueryType type);
- int peerPort() const;
- void setPeerPort(int port);
- QString peerHostName() const;
- void setPeerHostName(const QString &hostname);
- int localPort() const;
- void setLocalPort(int port);
- QString protocolTag() const;
- void setProtocolTag(const QString &protocolTag);
- QUrl url() const;
- void setUrl(const QUrl &url);
- #ifndef QT_NO_BEARERMANAGEMENT
- QNetworkConfiguration networkConfiguration() const;
- void setNetworkConfiguration(const QNetworkConfiguration &networkConfiguration);
- #endif
- private:
- QSharedDataPointer<QNetworkProxyQueryPrivate> d;
- };
- Q_DECLARE_SHARED(QNetworkProxyQuery)
- class QNetworkProxyPrivate;
- class Q_NETWORK_EXPORT QNetworkProxy
- {
- public:
- enum ProxyType {
- DefaultProxy,
- Socks5Proxy,
- NoProxy,
- HttpProxy,
- HttpCachingProxy,
- FtpCachingProxy
- };
- enum Capability {
- TunnelingCapability = 0x0001,
- ListeningCapability = 0x0002,
- UdpTunnelingCapability = 0x0004,
- CachingCapability = 0x0008,
- HostNameLookupCapability = 0x0010
- };
- Q_DECLARE_FLAGS(Capabilities, Capability)
- QNetworkProxy();
- QNetworkProxy(ProxyType type, const QString &hostName = QString(), quint16 port = 0,
- const QString &user = QString(), const QString &password = QString());
- QNetworkProxy(const QNetworkProxy &other);
- #ifdef Q_COMPILER_RVALUE_REFS
- QNetworkProxy &operator=(QNetworkProxy &&other) Q_DECL_NOTHROW { swap(other); return *this; }
- #endif
- QNetworkProxy &operator=(const QNetworkProxy &other);
- ~QNetworkProxy();
- void swap(QNetworkProxy &other) Q_DECL_NOTHROW { qSwap(d, other.d); }
- bool operator==(const QNetworkProxy &other) const;
- inline bool operator!=(const QNetworkProxy &other) const
- { return !(*this == other); }
- void setType(QNetworkProxy::ProxyType type);
- QNetworkProxy::ProxyType type() const;
- void setCapabilities(Capabilities capab);
- Capabilities capabilities() const;
- bool isCachingProxy() const;
- bool isTransparentProxy() const;
- void setUser(const QString &userName);
- QString user() const;
- void setPassword(const QString &password);
- QString password() const;
- void setHostName(const QString &hostName);
- QString hostName() const;
- void setPort(quint16 port);
- quint16 port() const;
- static void setApplicationProxy(const QNetworkProxy &proxy);
- static QNetworkProxy applicationProxy();
-
- QVariant header(QNetworkRequest::KnownHeaders header) const;
- void setHeader(QNetworkRequest::KnownHeaders header, const QVariant &value);
-
- bool hasRawHeader(const QByteArray &headerName) const;
- QList<QByteArray> rawHeaderList() const;
- QByteArray rawHeader(const QByteArray &headerName) const;
- void setRawHeader(const QByteArray &headerName, const QByteArray &value);
- private:
- QSharedDataPointer<QNetworkProxyPrivate> d;
- };
- Q_DECLARE_SHARED(QNetworkProxy)
- Q_DECLARE_OPERATORS_FOR_FLAGS(QNetworkProxy::Capabilities)
- class Q_NETWORK_EXPORT QNetworkProxyFactory
- {
- public:
- QNetworkProxyFactory();
- virtual ~QNetworkProxyFactory();
- virtual QList<QNetworkProxy> queryProxy(const QNetworkProxyQuery &query = QNetworkProxyQuery()) = 0;
- static void setUseSystemConfiguration(bool enable);
- static void setApplicationProxyFactory(QNetworkProxyFactory *factory);
- static QList<QNetworkProxy> proxyForQuery(const QNetworkProxyQuery &query);
- static QList<QNetworkProxy> systemProxyForQuery(const QNetworkProxyQuery &query = QNetworkProxyQuery());
- };
- #ifndef QT_NO_DEBUG_STREAM
- Q_NETWORK_EXPORT QDebug operator<<(QDebug debug, const QNetworkProxy &proxy);
- #endif
- QT_END_NAMESPACE
- Q_DECLARE_METATYPE(QNetworkProxy)
- #endif
- #endif
|