[Libreoffice-commits] online.git: Branch 'private/Ashod/nonblocking' - 2 commits - net/WebSocketHandler.cpp net/WebSocketHandler.hpp test/Makefile.am wsd/LOOLWSD.cpp
Jan Holesovsky
kendy at collabora.com
Wed Mar 1 18:55:08 UTC 2017
net/WebSocketHandler.cpp | 12 ------------
net/WebSocketHandler.hpp | 35 +++++++++++++----------------------
test/Makefile.am | 1 -
wsd/LOOLWSD.cpp | 16 ++++++++--------
4 files changed, 21 insertions(+), 43 deletions(-)
New commits:
commit 01885dc81aafd7613896b801567909285d9cfa9b
Author: Jan Holesovsky <kendy at collabora.com>
Date: Wed Mar 1 19:49:29 2017 +0100
nb: No need for the WebSocketSender I think.
Change-Id: I133bb8341a846d70f95e0c70274541b5db62f65d
diff --git a/net/WebSocketHandler.hpp b/net/WebSocketHandler.hpp
index 3b5756d..b55c4f2 100644
--- a/net/WebSocketHandler.hpp
+++ b/net/WebSocketHandler.hpp
@@ -33,6 +33,12 @@ public:
{
}
+ WebSocketHandler(const std::weak_ptr<StreamSocket>& socket) :
+ _shuttingDown(false)
+ {
+ onConnect(socket);
+ }
+
/// Implementation of the SocketHandlerInterface.
void onConnect(const std::weak_ptr<StreamSocket>& socket) override
{
@@ -193,6 +199,11 @@ public:
_wsPayload.clear();
}
+ void sendFrame(const std::string& msg) const
+ {
+ sendMessage(msg.data(), msg.size(), WSOpCode::Text);
+ }
+
/// Sends a WebSocket message of WPOpCode type.
/// Returns the number of bytes written (including frame overhead) on success,
/// 0 for closed/invalid socket, and -1 for other errors.
@@ -274,29 +285,9 @@ protected:
return len + 2;
}
- /// To me overriden to handle the websocket messages the way you need.
- virtual void handleMessage(bool fin, WSOpCode code, std::vector<char> &data) = 0;
-};
-
-class WebSocketSender : private WebSocketHandler
-{
-public:
- WebSocketSender(const std::weak_ptr<StreamSocket>& socket)
- {
- onConnect(socket);
- }
-
- void sendFrame(const std::string& msg) const
- {
- sendMessage(msg.data(), msg.size(), WSOpCode::Text);
- }
-
- using WebSocketHandler::shutdown;
-
-private:
- void handleMessage(bool, WSOpCode, std::vector<char>&) override
+ /// To be overriden to handle the websocket messages the way you need.
+ virtual void handleMessage(bool /*fin*/, WSOpCode /*code*/, std::vector<char> &/*data*/)
{
- // We will not read any.
}
};
diff --git a/wsd/LOOLWSD.cpp b/wsd/LOOLWSD.cpp
index 2985b25..73f5454 100644
--- a/wsd/LOOLWSD.cpp
+++ b/wsd/LOOLWSD.cpp
@@ -204,7 +204,7 @@ static int careerSpanSeconds = 0;
namespace
{
-inline void shutdownLimitReached(WebSocketSender& ws)
+inline void shutdownLimitReached(WebSocketHandler& ws)
{
const std::string error = Poco::format(PAYLOAD_UNAVAILABLE_LIMIT_REACHED, MAX_DOCUMENTS, MAX_CONNECTIONS);
LOG_INF("Sending client limit-reached message: " << error);
@@ -2340,7 +2340,7 @@ bool LOOLWSD::createForKit()
std::mutex Connection::Mutex;
#endif
-static std::shared_ptr<DocumentBroker> createDocBroker(WebSocketSender& ws,
+static std::shared_ptr<DocumentBroker> createDocBroker(WebSocketHandler& ws,
const std::string& uri,
const std::string& docKey,
const Poco::URI& uriPublic)
@@ -2378,7 +2378,7 @@ static std::shared_ptr<DocumentBroker> createDocBroker(WebSocketSender& ws,
/// Otherwise, creates and adds a new one to DocBrokers.
/// May return null if terminating or MaxDocuments limit is reached.
/// After returning a valid instance DocBrokers must be cleaned up after exceptions.
-static std::shared_ptr<DocumentBroker> findOrCreateDocBroker(WebSocketSender& ws,
+static std::shared_ptr<DocumentBroker> findOrCreateDocBroker(WebSocketHandler& ws,
const std::string& uri,
const std::string& docKey,
const std::string& id,
@@ -2514,7 +2514,7 @@ static void removeDocBrokerSession(const std::shared_ptr<DocumentBroker>& docBro
}
}
-static std::shared_ptr<ClientSession> createNewClientSession(const WebSocketSender& ws,
+static std::shared_ptr<ClientSession> createNewClientSession(const WebSocketHandler& ws,
const std::string& id,
const Poco::URI& uriPublic,
const std::shared_ptr<DocumentBroker>& docBroker,
@@ -3125,7 +3125,7 @@ private:
LOG_INF("Client WS request" << request.getURI() << ", url: " << url);
// First Upgrade.
- WebSocketSender ws = upgradeToWebSocket(request);
+ WebSocketHandler ws = upgradeToWebSocket(request);
if (_connectionNum > MAX_CONNECTIONS)
{
@@ -3206,7 +3206,7 @@ private:
LOG_CHECK_RET(docBroker && "Null DocumentBroker instance", );
const auto docKey = docBroker->getDocKey();
- WebSocketSender ws(_socket);
+ WebSocketHandler ws(_socket);
try
{
// Connection terminated. Destroy session.
@@ -3282,7 +3282,7 @@ private:
}
/// Upgrade the http(s) connection to a websocket.
- WebSocketSender upgradeToWebSocket(const Poco::Net::HTTPRequest& req)
+ WebSocketHandler upgradeToWebSocket(const Poco::Net::HTTPRequest& req)
{
LOG_TRC("Upgrading to WebSocket");
assert(_wsState == WSState::HTTP);
@@ -3309,7 +3309,7 @@ private:
_wsState = WSState::WS;
// Create a WS wrapper to use for sending the client status.
- return WebSocketSender(socket);
+ return WebSocketHandler(socket);
}
/// To make the protected 'computeAccept' accessible.
commit 76e029a25ddfaa73d51b820d31e60b926c83a635
Author: Jan Holesovsky <kendy at collabora.com>
Date: Wed Mar 1 19:10:17 2017 +0100
nb: This file is not needed any more.
Change-Id: Ic73ddcc61495889fd36eb6f23f41c1bd45eb85c6
diff --git a/net/WebSocketHandler.cpp b/net/WebSocketHandler.cpp
deleted file mode 100644
index 8390704..0000000
--- a/net/WebSocketHandler.cpp
+++ /dev/null
@@ -1,12 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- */
-
-#include "WebSocketHandler.hpp"
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/test/Makefile.am b/test/Makefile.am
index 167c436..d849f13 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -36,7 +36,6 @@ wsd_sources = \
../common/Protocol.cpp \
../common/Session.cpp \
../common/MessageQueue.cpp \
- ../net/WebSocketHandler.cpp \
../kit/Kit.cpp \
../wsd/TileCache.cpp \
../common/Unit.cpp \
More information about the Libreoffice-commits
mailing list