Added check on QT_NO_NETWORKPROXY to include proxy functionality only when required
[contrib/qtwebsockets.git] / src / handshakeresponse_p.h
1 #ifndef HANDSHAKERESPONSE_P_H
2 #define HANDSHAKERESPONSE_P_H
3 //
4 //  W A R N I N G
5 //  -------------
6 //
7 // This file is not part of the Qt API.  It exists purely as an
8 // implementation detail.  This header file may change from version to
9 // version without notice, or even be removed.
10 //
11 // We mean it.
12 //
13
14 #include <QObject>
15 #include "qwebsocketprotocol.h"
16
17 QT_BEGIN_NAMESPACE
18
19 class HandshakeRequest;
20 class QString;
21 class QTextStream;
22
23 class HandshakeResponse:public QObject
24 {
25         Q_OBJECT
26 public:
27         HandshakeResponse(const HandshakeRequest &request,
28                                           const QString &serverName,
29                                           bool isOriginAllowed,
30                                           const QList<QWebSocketProtocol::Version> &supportedVersions,
31                                           const QList<QString> &supportedProtocols,
32                                           const QList<QString> &supportedExtensions);
33
34         virtual ~HandshakeResponse();
35
36         bool isValid() const;
37         bool canUpgrade() const;
38         QString getAcceptedProtocol() const;
39         QString getAcceptedExtension() const;
40         QWebSocketProtocol::Version getAcceptedVersion() const;
41
42 public Q_SLOTS:
43
44 Q_SIGNALS:
45
46 private:
47         Q_DISABLE_COPY(HandshakeResponse)
48         bool m_isValid;
49         bool m_canUpgrade;
50         QString m_response;
51         QString m_acceptedProtocol;
52         QString m_acceptedExtension;
53         QWebSocketProtocol::Version m_acceptedVersion;
54
55         QString calculateAcceptKey(const QString &key) const;
56         QString getHandshakeResponse(const HandshakeRequest &request,
57                                                                  const QString &serverName,
58                                                                  bool isOriginAllowed,
59                                                                  const QList<QWebSocketProtocol::Version> &supportedVersions,
60                                                                  const QList<QString> &supportedProtocols,
61                                                                  const QList<QString> &supportedExtensions);
62
63         QTextStream &writeToStream(QTextStream &textStream) const;
64         friend QTextStream &operator <<(QTextStream &stream, const HandshakeResponse &response);
65 };
66
67 QT_END_NAMESPACE
68
69 #endif // HANDSHAKERESPONSE_P_H