diff options
author | Steven Ceuppens <steven.ceuppens@icloud.com> | 2013-09-27 14:27:27 +0200 |
---|---|---|
committer | Kurt Pattyn <pattyn.kurt@gmail.com> | 2013-09-28 21:17:48 +0200 |
commit | 6e1e387174d20fb62a804b6e27438bcc5ea59f28 (patch) | |
tree | 68d5c273ea682a244398ba8d3c7fbeb4a5f76b9b /src/websockets/qwebsocketserver.h | |
parent | 315e4fa0764f8d7a568be2a8063cc33c9ec13518 (diff) | |
download | qtwebsockets-6e1e387174d20fb62a804b6e27438bcc5ea59f28.tar.gz |
Changes to integrate the websocket module as a full Qt Add-On module
- Changed project files to use Qt structure
- Moved existing sources into subdirectory, to make room for moduels
- Created a "import/qmlwebsocket" module skeleton (works, but needs to be extended)
- Modified examples to not use "include(.pri)", but use "QT += websocket"
- Added qml example skeleton (works, but no useful functionality yet)
Project can be build with:
$ qmake
$ make
$ make install
Module can be used in other projects with
QT += websockets
Change-Id: I2123026958b264670dbf8a978dee76edf5855806
Reviewed-by: Kurt Pattyn <pattyn.kurt@gmail.com>
Diffstat (limited to 'src/websockets/qwebsocketserver.h')
-rw-r--r-- | src/websockets/qwebsocketserver.h | 92 |
1 files changed, 92 insertions, 0 deletions
diff --git a/src/websockets/qwebsocketserver.h b/src/websockets/qwebsocketserver.h new file mode 100644 index 0000000..6579b53 --- /dev/null +++ b/src/websockets/qwebsocketserver.h @@ -0,0 +1,92 @@ +/* +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_H +#define QWEBSOCKETSERVER_H + +#include <QObject> +#include <QString> +#include <QHostAddress> +#include "qwebsocketsglobal.h" +#include "qwebsocketprotocol.h" + +QT_BEGIN_NAMESPACE + +class QWebSocketServerPrivate; +class QWebSocket; +class QCorsAuthenticator; + +class Q_WEBSOCKETS_EXPORT QWebSocketServer : public QObject +{ + Q_OBJECT + +public: + explicit QWebSocketServer(const QString &serverName, QObject *parent = 0); + virtual ~QWebSocketServer(); + + bool listen(const QHostAddress &address = QHostAddress::Any, quint16 port = 0); + void close(); + + bool isListening() const; + + void setMaxPendingConnections(int numConnections); + int maxPendingConnections() const; + + quint16 serverPort() const; + QHostAddress serverAddress() const; + + bool setSocketDescriptor(int socketDescriptor); + int socketDescriptor() const; + + bool waitForNewConnection(int msec = 0, bool *timedOut = 0); + bool hasPendingConnections() const; + virtual QWebSocket *nextPendingConnection(); + + QAbstractSocket::SocketError serverError() const; + QString errorString() const; + + void pauseAccepting(); + void resumeAccepting(); + + void setServerName(const QString &serverName); + QString serverName() const; + +#ifndef QT_NO_NETWORKPROXY + void setProxy(const QNetworkProxy &networkProxy); + QNetworkProxy proxy() const; +#endif + + QList<QWebSocketProtocol::Version> supportedVersions() const; + QList<QString> supportedProtocols() const; + QList<QString> supportedExtensions() const; + +Q_SIGNALS: + void acceptError(QAbstractSocket::SocketError socketError); + void originAuthenticationRequired(QCorsAuthenticator *pAuthenticator); + void newConnection(); + +private: + Q_DISABLE_COPY(QWebSocketServer) + Q_DECLARE_PRIVATE(QWebSocketServer) + QWebSocketServerPrivate * const d_ptr; +}; + +QT_END_NAMESPACE + +#endif // QWEBSOCKETSERVER_H |