Replaced QTcpSocket * with a QIODevice * to make network independent unit tests possible.
[contrib/qtwebsockets.git] / src / qwebsocketserver_p.h
index 00a6c4e..081ecec 100644 (file)
@@ -1,8 +1,21 @@
-/**
- * @file websocketserver_p.h
- * @author Kurt Pattyn (pattyn.kurt@gmail.com)
- * @brief Defines the private WebSocketServerPrivate class.
- */
+/*
+QWebSockets implements the WebSocket protocol as defined in RFC 6455.
+Copyright (C) 2013 Kurt Pattyn (pattyn.kurt@gmail.com)
+
+This library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Lesser General Public
+License as published by the Free Software Foundation; either
+version 2.1 of the License, or (at your option) any later version.
+
+This library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public
+License along with this library; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+*/
 
 #ifndef QWEBSOCKETSERVER_P_H
 #define QWEBSOCKETSERVER_P_H
@@ -30,49 +43,57 @@ class QWebSocketServer;
 
 class QWebSocketServerPrivate : public QObject
 {
-       Q_OBJECT
+    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();
-       QNetworkProxy proxy() const;
-       QHostAddress serverAddress() const;
-       QAbstractSocket::SocketError serverError() const;
-       quint16 serverPort() const;
-       void setMaxPendingConnections(int numConnections);
-       void setProxy(const QNetworkProxy &networkProxy);
-       bool setSocketDescriptor(int socketDescriptor);
-       int socketDescriptor() const;
-       bool waitForNewConnection(int msec = 0, bool *timedOut = 0);
-
-       QList<QWebSocketProtocol::Version> supportedVersions() const;
-       QList<QString> supportedProtocols() const;
-       QList<QString> supportedExtensions() const;
+    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<QWebSocketProtocol::Version> supportedVersions() const;
+    QList<QString> supportedProtocols() const;
+    QList<QString> supportedExtensions() const;
+
+    void setServerName(const QString &serverName);
+    QString serverName() const;
 
 Q_SIGNALS:
-       void newConnection();
+    void newConnection();
 
 private Q_SLOTS:
-       void onNewConnection();
-       void onCloseConnection();
-       void handshakeReceived();
+    void onNewConnection();
+    void onCloseConnection();
+    void handshakeReceived();
 
 private:
-       QWebSocketServer * const q_ptr;
+    Q_DECLARE_PUBLIC(QWebSocketServer)
+    QWebSocketServer * const q_ptr;
 
-       QTcpServer *m_pTcpServer;
-       QString m_serverName;
-       QQueue<QWebSocket *> m_pendingConnections;
+    QTcpServer *m_pTcpServer;
+    QString m_serverName;
+    QQueue<QWebSocket *> m_pendingConnections;
 
-       void addPendingConnection(QWebSocket *pWebSocket);
+    void addPendingConnection(QWebSocket *pWebSocket);
 };
 
 QT_END_NAMESPACE