2 * @file websocketserver_p.h
3 * @author Kurt Pattyn (pattyn.kurt@gmail.com)
4 * @brief Defines the private WebSocketServerPrivate class.
7 #ifndef QWEBSOCKETSERVER_P_H
8 #define QWEBSOCKETSERVER_P_H
13 #include <QHostAddress>
14 #include "qwebsocket.h"
17 class QWebSocketServer;
19 class QWebSocketServerPrivate : public QObject
24 explicit QWebSocketServerPrivate(const QString &serverName, QWebSocketServer * const pWebSocketServer, QObject *parent = 0);
25 virtual ~QWebSocketServerPrivate();
28 QString errorString() const;
29 bool hasPendingConnections() const;
30 bool isListening() const;
31 bool listen(const QHostAddress &address = QHostAddress::Any, quint16 port = 0);
32 int maxPendingConnections() const;
33 virtual QWebSocket *nextPendingConnection();
34 QNetworkProxy proxy() const;
35 QHostAddress serverAddress() const;
36 QAbstractSocket::SocketError serverError() const;
37 quint16 serverPort() const;
38 void setMaxPendingConnections(int numConnections);
39 void setProxy(const QNetworkProxy &networkProxy);
40 bool setSocketDescriptor(int socketDescriptor);
41 int socketDescriptor() const;
42 bool waitForNewConnection(int msec = 0, bool *timedOut = 0);
44 QList<QWebSocketProtocol::Version> supportedVersions() const;
45 QList<QString> supportedProtocols() const;
46 QList<QString> supportedExtensions() const;
52 void onNewConnection();
53 void onCloseConnection();
54 void handshakeReceived();
57 QWebSocketServer * const q_ptr;
59 QTcpServer *m_pTcpServer;
61 QQueue<QWebSocket *> m_pendingConnections;
63 void addPendingConnection(QWebSocket *pWebSocket);
66 #endif // QWEBSOCKETSERVER_P_H