X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Fqwebsocket.h;h=e1791afe5102a82008c359a052f91d161ec7ba19;hb=7d8d55c3d5745714909c5f9fdd9bb1142388441b;hp=7248b7ebaeb996d40866ed49713fa74f6f6fe3cd;hpb=768d6dc9644837cf04dcef9b3856dc27501f5057;p=contrib%2Fqtwebsockets.git diff --git a/src/qwebsocket.h b/src/qwebsocket.h index 7248b7e..e1791af 100644 --- a/src/qwebsocket.h +++ b/src/qwebsocket.h @@ -1,12 +1,21 @@ -/** - * @file websocket.h - * @brief Defines the WebSocket class. - * - * \note Currently, only V13 (RFC6455) is supported. - * \note Both text and binary websockets are supported. - * \note The secure version (wss) is currently not implemented. - * @author Kurt Pattyn (pattyn.kurt@gmail.com) - */ +/* +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 QWEBSOCKET_H #define QWEBSOCKET_H @@ -28,74 +37,78 @@ class QWebSocketPrivate; class Q_WEBSOCKETS_EXPORT QWebSocket:public QObject { - Q_OBJECT + Q_OBJECT public: - explicit QWebSocket(QString origin = QString(), QWebSocketProtocol::Version version = QWebSocketProtocol::V_LATEST, QObject *parent = 0); - virtual ~QWebSocket(); - - void abort(); - QAbstractSocket::SocketError error() const; - QString errorString() const; - bool flush(); - bool isValid(); - QHostAddress localAddress() const; - quint16 localPort() const; - QHostAddress peerAddress() const; - QString peerName() const; - quint16 peerPort() const; + explicit QWebSocket(const QString &origin = QString(), QWebSocketProtocol::Version version = QWebSocketProtocol::V_LATEST, QObject *parent = 0); + virtual ~QWebSocket(); + + void abort(); + QAbstractSocket::SocketError error() const; + QString errorString() const; + bool flush(); + bool isValid() const; + QHostAddress localAddress() const; + quint16 localPort() const; + QAbstractSocket::PauseModes pauseMode() const; + QHostAddress peerAddress() const; + QString peerName() const; + quint16 peerPort() const; #ifndef QT_NO_NETWORKPROXY - QNetworkProxy proxy() const; - void setProxy(const QNetworkProxy &networkProxy); + QNetworkProxy proxy() const; + void setProxy(const QNetworkProxy &networkProxy); #endif - qint64 readBufferSize() const; - void setReadBufferSize(qint64 size); - void setSocketOption(QAbstractSocket::SocketOption option, const QVariant &value); - QVariant socketOption(QAbstractSocket::SocketOption option); - QAbstractSocket::SocketState state() const; - - bool waitForConnected(int msecs = 30000); - bool waitForDisconnected(int msecs = 30000); - - QWebSocketProtocol::Version version(); - QString resourceName(); - QUrl requestUrl(); - QString origin(); - QString protocol(); - QString extension(); - - qint64 write(const char *message); //send data as text - qint64 write(const char *message, qint64 maxSize); //send data as text - qint64 write(const QString &message); //send data as text - qint64 write(const QByteArray &data); //send data as binary + qint64 readBufferSize() const; + void setReadBufferSize(qint64 size); + + void resume(); + void setPauseMode(QAbstractSocket::PauseModes pauseMode); + + void setSocketOption(QAbstractSocket::SocketOption option, const QVariant &value); + QVariant socketOption(QAbstractSocket::SocketOption option); + QAbstractSocket::SocketState state() const; + + bool waitForConnected(int msecs = 30000); + bool waitForDisconnected(int msecs = 30000); + + QWebSocketProtocol::Version version() const; + QString resourceName() const; + QUrl requestUrl() const; + QString origin() const; + QString protocol() const; + QString extension() const; + + qint64 write(const char *message); //send data as text + qint64 write(const char *message, qint64 maxSize); //send data as text + qint64 write(const QString &message); //send data as text + qint64 write(const QByteArray &data); //send data as binary public Q_SLOTS: - virtual void close(QWebSocketProtocol::CloseCode closeCode = QWebSocketProtocol::CC_NORMAL, QString reason = QString()); - virtual void open(const QUrl &url, bool mask = true); - void ping(); + void close(QWebSocketProtocol::CloseCode closeCode = QWebSocketProtocol::CC_NORMAL, const QString &reason = QString()); + void open(const QUrl &url, bool mask = true); + void ping(); Q_SIGNALS: - void aboutToClose(); - void connected(); - void disconnected(); - void stateChanged(QAbstractSocket::SocketState state); + void aboutToClose(); + void connected(); + void disconnected(); + void stateChanged(QAbstractSocket::SocketState state); #ifndef QT_NO_NETWORKPROXY - void proxyAuthenticationRequired(const QNetworkProxy &proxy, QAuthenticator *pAuthenticator); + void proxyAuthenticationRequired(const QNetworkProxy &proxy, QAuthenticator *pAuthenticator); #endif - void readChannelFinished(); - void textFrameReceived(QString frame, bool isLastFrame); - void binaryFrameReceived(QByteArray frame, bool isLastFrame); - void textMessageReceived(QString message); - void binaryMessageReceived(QByteArray message); - void error(QAbstractSocket::SocketError error); - void pong(quint64 elapsedTime); + void readChannelFinished(); + void textFrameReceived(QString frame, bool isLastFrame); + void binaryFrameReceived(QByteArray frame, bool isLastFrame); + void textMessageReceived(QString message); + void binaryMessageReceived(QByteArray message); + void error(QAbstractSocket::SocketError error); + void pong(quint64 elapsedTime); private: - Q_DISABLE_COPY(QWebSocket) - QWebSocket(QTcpSocket *pTcpSocket, QWebSocketProtocol::Version version, QObject *parent = 0); - QWebSocketPrivate * const d_ptr; - - friend class QWebSocketPrivate; + Q_DISABLE_COPY(QWebSocket) + Q_DECLARE_PRIVATE(QWebSocket) + QWebSocket(QTcpSocket *pTcpSocket, QWebSocketProtocol::Version version, QObject *parent = 0); + QWebSocketPrivate * const d_ptr; }; QT_END_NAMESPACE