diff options
-rw-r--r-- | examples/echoclient/echoclient.cpp | 2 | ||||
-rw-r--r-- | examples/echoserver/echoserver.cpp | 4 | ||||
-rw-r--r-- | src/qwebsocket.cpp | 34 | ||||
-rw-r--r-- | src/qwebsocket.h | 7 | ||||
-rw-r--r-- | src/qwebsocket_p.cpp | 16 | ||||
-rw-r--r-- | src/qwebsocket_p.h | 7 | ||||
-rw-r--r-- | tests/tst_compliance.cpp | 4 | ||||
-rw-r--r-- | tests/tst_websockets.cpp | 6 |
8 files changed, 51 insertions, 29 deletions
diff --git a/examples/echoclient/echoclient.cpp b/examples/echoclient/echoclient.cpp index 095e3bd..0e6983a 100644 --- a/examples/echoclient/echoclient.cpp +++ b/examples/echoclient/echoclient.cpp @@ -16,7 +16,7 @@ void EchoClient::onConnected() { qDebug() << "Websocket connected"; connect(&m_webSocket, SIGNAL(textMessageReceived(QString)), this, SLOT(onTextMessageReceived(QString))); - m_webSocket.send("Hello, world!"); + m_webSocket.write("Hello, world!"); } //! [onConnected] diff --git a/examples/echoserver/echoserver.cpp b/examples/echoserver/echoserver.cpp index c08aad1..6afac50 100644 --- a/examples/echoserver/echoserver.cpp +++ b/examples/echoserver/echoserver.cpp @@ -38,7 +38,7 @@ void EchoServer::processMessage(QString message) QWebSocket *pClient = qobject_cast<QWebSocket *>(sender()); if (pClient != 0) { - pClient->send(message); + pClient->write(message); } } //! [processMessage] @@ -49,7 +49,7 @@ void EchoServer::processBinaryMessage(QByteArray message) QWebSocket *pClient = qobject_cast<QWebSocket *>(sender()); if (pClient != 0) { - pClient->send(message); + pClient->write(message); } } //! [processBinaryMessage] diff --git a/src/qwebsocket.cpp b/src/qwebsocket.cpp index b2e7d22..118bec9 100644 --- a/src/qwebsocket.cpp +++ b/src/qwebsocket.cpp @@ -232,21 +232,33 @@ bool QWebSocket::flush() * Sends the given \a message over the socket as a text message and returns the number of bytes actually sent. * \param message Text message to be sent. Must be '\0' terminated. * \return The number of bytes actually sent. - * \sa send(const QString &message) + * \sa write(const QString &message) and write(const char *message, qint64 maxSize) */ -qint64 QWebSocket::send(const char *message) +qint64 QWebSocket::write(const char *message) { - return d_ptr->send(message); + return d_ptr->write(message); } -/** - * @brief Sends the given \a message over the socket as a text message and returns the number of bytes actually sent. - * @param message The message to be sent - * @return The number of bytes actually sent. +/*! + * Sends the most \a maxSize bytes of the given \a message over the socket as a text message and returns the number of bytes actually sent. + * \param message Text message to be sent. + * \return The number of bytes actually sent. + * \sa write(const QString &message) and write(const char *message) + */ +qint64 QWebSocket::write(const char *message, qint64 maxSize) +{ + return d_ptr->write(message, maxSize); +} + +/*! + \brief Sends the given \a message over the socket as a text message and returns the number of bytes actually sent. + \param message The message to be sent + \return The number of bytes actually sent. + \sa write(const char *message) and write(const char *message, qint64 maxSize) */ -qint64 QWebSocket::send(const QString &message) +qint64 QWebSocket::write(const QString &message) { - return d_ptr->send(message); + return d_ptr->write(message); } /** @@ -254,9 +266,9 @@ qint64 QWebSocket::send(const QString &message) * @param data The binary data to be sent. * @return The number of bytes actually sent. */ -qint64 QWebSocket::send(const QByteArray &data) +qint64 QWebSocket::write(const QByteArray &data) { - return d_ptr->send(data); + return d_ptr->write(data); } /*! diff --git a/src/qwebsocket.h b/src/qwebsocket.h index ed88ba8..c912b3b 100644 --- a/src/qwebsocket.h +++ b/src/qwebsocket.h @@ -58,9 +58,10 @@ public: QString protocol(); QString extension(); - qint64 send(const char *message); - qint64 send(const QString &message); //send data as text - qint64 send(const QByteArray &data); //send data as binary + 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()); diff --git a/src/qwebsocket_p.cpp b/src/qwebsocket_p.cpp index 26e12a0..2e0f184 100644 --- a/src/qwebsocket_p.cpp +++ b/src/qwebsocket_p.cpp @@ -127,15 +127,23 @@ bool QWebSocketPrivate::flush() /*! \internal */ -qint64 QWebSocketPrivate::send(const char *message) +qint64 QWebSocketPrivate::write(const char *message) { - return send(QString::fromUtf8(message)); + return write(QString::fromUtf8(message)); } /*! \internal */ -qint64 QWebSocketPrivate::send(const QString &message) +qint64 QWebSocketPrivate::write(const char *message, qint64 maxSize) +{ + return write(QString::fromUtf8(message, static_cast<int>(maxSize))); +} + +/*! + \internal + */ +qint64 QWebSocketPrivate::write(const QString &message) { return doWriteData(message.toUtf8(), false); } @@ -143,7 +151,7 @@ qint64 QWebSocketPrivate::send(const QString &message) /*! \internal */ -qint64 QWebSocketPrivate::send(const QByteArray &data) +qint64 QWebSocketPrivate::write(const QByteArray &data) { return doWriteData(data, true); } diff --git a/src/qwebsocket_p.h b/src/qwebsocket_p.h index 3760552..188337b 100644 --- a/src/qwebsocket_p.h +++ b/src/qwebsocket_p.h @@ -74,9 +74,10 @@ public: QString protocol(); QString extension(); - qint64 send(const char *message); - qint64 send(const QString &message); //send data as text - qint64 send(const QByteArray &data); //send data as binary + 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()); diff --git a/tests/tst_compliance.cpp b/tests/tst_compliance.cpp index b450887..d56fc1f 100644 --- a/tests/tst_compliance.cpp +++ b/tests/tst_compliance.cpp @@ -64,10 +64,10 @@ void ComplianceTest::runTestCase(int nbr, int total) //ws://ipaddress:port/runCase?case=<number>&agent=<agentname> //where agent name will be QWebSocket QObject::connect(pWebSocket, &QWebSocket::textMessageReceived, [=](QString message) { - pWebSocket->send(message); + pWebSocket->write(message); }); QObject::connect(pWebSocket, &QWebSocket::binaryMessageReceived, [=](QByteArray message) { - pWebSocket->send(message); + pWebSocket->write(message); }); qDebug() << "Executing test" << (nbr + 1) << "/" << total; diff --git a/tests/tst_websockets.cpp b/tests/tst_websockets.cpp index fe914dc..c404eef 100644 --- a/tests/tst_websockets.cpp +++ b/tests/tst_websockets.cpp @@ -89,7 +89,7 @@ void WebSocketsTest::testTextMessage() QSignalSpy spy(m_pWebSocket, SIGNAL(textMessageReceived(QString))); - QCOMPARE(m_pWebSocket->send(message), (qint64)strlen(message)); + QCOMPARE(m_pWebSocket->write(message), (qint64)strlen(message)); QTRY_VERIFY_WITH_TIMEOUT(spy.count() != 0, 1000); QCOMPARE(spy.count(), 1); @@ -98,7 +98,7 @@ void WebSocketsTest::testTextMessage() spy.clear(); QString qMessage(message); - QCOMPARE(m_pWebSocket->send(qMessage), (qint64)qMessage.length()); + QCOMPARE(m_pWebSocket->write(qMessage), (qint64)qMessage.length()); QTRY_VERIFY_WITH_TIMEOUT(spy.count() != 0, 1000); QCOMPARE(spy.count(), 1); QCOMPARE(spy.at(0).count(), 1); @@ -111,7 +111,7 @@ void WebSocketsTest::testBinaryMessage() QByteArray data("Hello world!"); - QCOMPARE(m_pWebSocket->send(data), (qint64)data.size()); + QCOMPARE(m_pWebSocket->write(data), (qint64)data.size()); QTRY_VERIFY_WITH_TIMEOUT(spy.count() != 0, 1000); QCOMPARE(spy.count(), 1); |