/** * @file websocketserver_p.h * @author Kurt Pattyn (pattyn.kurt@gmail.com) * @brief Defines the private WebSocketServerPrivate class. */ #ifndef QWEBSOCKETSERVER_P_H #define QWEBSOCKETSERVER_P_H // // W A R N I N G // ------------- // // This file is not part of the Qt API. It exists purely as an // implementation detail. This header file may change from version to // version without notice, or even be removed. // // We mean it. // #include #include #include #include #include "qwebsocket.h" QT_BEGIN_NAMESPACE class QTcpServer; class QWebSocketServer; class QWebSocketServerPrivate : public QObject { Q_OBJECT public: explicit QWebSocketServerPrivate(const QString &serverName, QWebSocketServer * const pWebSocketServer, QObject *parent = 0); virtual ~QWebSocketServerPrivate(); void close(); QString errorString() const; bool hasPendingConnections() const; bool isListening() const; bool listen(const QHostAddress &address = QHostAddress::Any, quint16 port = 0); int maxPendingConnections() const; virtual QWebSocket *nextPendingConnection(); void pauseAccepting(); #ifndef QT_NO_NETWORKPROXY QNetworkProxy proxy() const; void setProxy(const QNetworkProxy &networkProxy); #endif void resumeAccepting(); QHostAddress serverAddress() const; QAbstractSocket::SocketError serverError() const; quint16 serverPort() const; void setMaxPendingConnections(int numConnections); bool setSocketDescriptor(int socketDescriptor); int socketDescriptor() const; bool waitForNewConnection(int msec = 0, bool *timedOut = 0); QList supportedVersions() const; QList supportedProtocols() const; QList supportedExtensions() const; Q_SIGNALS: void newConnection(); private Q_SLOTS: void onNewConnection(); void onCloseConnection(); void handshakeReceived(); private: QWebSocketServer * const q_ptr; QTcpServer *m_pTcpServer; QString m_serverName; QQueue m_pendingConnections; void addPendingConnection(QWebSocket *pWebSocket); }; QT_END_NAMESPACE #endif // QWEBSOCKETSERVER_P_H