[Libreoffice-commits] online.git: loolwsd/IoUtil.cpp loolwsd/IoUtil.hpp loolwsd/LOOLKit.cpp loolwsd/LOOLSession.cpp loolwsd/Util.cpp loolwsd/Util.hpp
Jan Holesovsky
kendy at collabora.com
Tue Nov 8 18:58:17 UTC 2016
loolwsd/IoUtil.cpp | 19 +++++++++++++++++++
loolwsd/IoUtil.hpp | 10 ++++++++++
loolwsd/LOOLKit.cpp | 6 +++---
loolwsd/LOOLSession.cpp | 4 ++--
loolwsd/Util.cpp | 20 --------------------
loolwsd/Util.hpp | 10 ----------
6 files changed, 34 insertions(+), 35 deletions(-)
New commits:
commit 024a6048a0d4d6b6c84a5e0bb325d44b41abe9ad
Author: Jan Holesovsky <kendy at collabora.com>
Date: Tue Nov 8 19:57:03 2016 +0100
Move sendLargeFrame() from Util to IoUtil.
Change-Id: Id5db865b0bcf936651e3c89a0333a101e58ace92
diff --git a/loolwsd/IoUtil.cpp b/loolwsd/IoUtil.cpp
index 085422d..321fe40 100644
--- a/loolwsd/IoUtil.cpp
+++ b/loolwsd/IoUtil.cpp
@@ -258,6 +258,25 @@ ssize_t readFromPipe(int pipe, char* buffer, ssize_t size)
return bytes;
}
+void sendLargeFrame(const std::shared_ptr<Poco::Net::WebSocket>& ws, const char *message, int length, int flags)
+{
+ // Size after which messages will be sent preceded with
+ // 'nextmessage' frame to let the receiver know in advance
+ // the size of larger coming message. All messages up to this
+ // size are considered small messages.
+ constexpr int SMALL_MESSAGE_SIZE = READ_BUFFER_SIZE / 2;
+
+ if (length > SMALL_MESSAGE_SIZE)
+ {
+ const std::string nextmessage = "nextmessage: size=" + std::to_string(length);
+ ws->sendFrame(nextmessage.data(), nextmessage.size());
+ Log::debug("Message is long, sent " + nextmessage);
+ }
+
+ ws->sendFrame(message, length, flags);
+ Log::debug("Sent frame: " + LOOLProtocol::getAbbreviatedMessage(std::string(message, length)));
+}
+
/// Reads a single line from a pipe.
/// Returns 0 for timeout, <0 for error, and >0 on success.
/// On success, line will contain the read message.
diff --git a/loolwsd/IoUtil.hpp b/loolwsd/IoUtil.hpp
index 564cef5..a23cd33 100644
--- a/loolwsd/IoUtil.hpp
+++ b/loolwsd/IoUtil.hpp
@@ -44,6 +44,16 @@ namespace IoUtil
ssize_t readFromPipe(int pipe, char* buffer, ssize_t size);
+ /// Send frame. If it is too long, send a 'nextmessage:' before the real
+ /// frame.
+ void sendLargeFrame(const std::shared_ptr<Poco::Net::WebSocket>& ws, const char *message, int length, int flags = Poco::Net::WebSocket::FRAME_TEXT);
+
+ /// Send frame as above, the std::string variant.
+ inline void sendLargeFrame(const std::shared_ptr<Poco::Net::WebSocket>& ws, const std::vector<char> &message, int flags = Poco::Net::WebSocket::FRAME_TEXT)
+ {
+ sendLargeFrame(ws, message.data(), message.size(), flags);
+ }
+
/// Helper class to handle reading from a pipe.
class PipeReader
{
diff --git a/loolwsd/LOOLKit.cpp b/loolwsd/LOOLKit.cpp
index 52510ab..f228be9 100644
--- a/loolwsd/LOOLKit.cpp
+++ b/loolwsd/LOOLKit.cpp
@@ -505,7 +505,7 @@ public:
}
LOG_TRC("Sending render-tile response (" + std::to_string(output.size()) + " bytes) for: " + response);
- Util::sendLargeFrame(ws, output, WebSocket::FRAME_BINARY);
+ IoUtil::sendLargeFrame(ws, output, WebSocket::FRAME_BINARY);
}
void renderCombinedTiles(StringTokenizer& tokens, const std::shared_ptr<Poco::Net::WebSocket>& ws)
@@ -605,7 +605,7 @@ public:
std::copy(tileMsg.begin(), tileMsg.end(), response.begin());
std::copy(output.begin(), output.end(), response.begin() + tileMsg.size());
- Util::sendLargeFrame(ws, response, WebSocket::FRAME_BINARY);
+ IoUtil::sendLargeFrame(ws, response, WebSocket::FRAME_BINARY);
}
bool sendTextFrame(const std::string& message) override
@@ -618,7 +618,7 @@ public:
return false;
}
- Util::sendLargeFrame(_ws, message.data(), message.size());
+ IoUtil::sendLargeFrame(_ws, message.data(), message.size());
return true;
}
catch (const Exception& exc)
diff --git a/loolwsd/LOOLSession.cpp b/loolwsd/LOOLSession.cpp
index c281adc..25bc408 100644
--- a/loolwsd/LOOLSession.cpp
+++ b/loolwsd/LOOLSession.cpp
@@ -84,7 +84,7 @@ bool LOOLSession::sendTextFrame(const char* buffer, const int length)
return false;
}
- Util::sendLargeFrame(_ws, buffer, length);
+ IoUtil::sendLargeFrame(_ws, buffer, length);
return true;
}
catch (const Exception& exc)
@@ -109,7 +109,7 @@ bool LOOLSession::sendBinaryFrame(const char *buffer, int length)
return false;
}
- Util::sendLargeFrame(_ws, buffer, length, WebSocket::FRAME_BINARY);
+ IoUtil::sendLargeFrame(_ws, buffer, length, WebSocket::FRAME_BINARY);
return true;
}
catch (const Exception& exc)
diff --git a/loolwsd/Util.cpp b/loolwsd/Util.cpp
index deaee45..1b9a63c 100644
--- a/loolwsd/Util.cpp
+++ b/loolwsd/Util.cpp
@@ -46,7 +46,6 @@
#include <Poco/Util/Application.h>
#include "Common.hpp"
-#include "LOOLProtocol.hpp"
#include "Log.hpp"
#include "Util.hpp"
@@ -564,25 +563,6 @@ namespace Util
static std::atomic_int counter(0);
return std::to_string(Poco::Process::id()) + "/" + std::to_string(counter++);
}
-
- void sendLargeFrame(const std::shared_ptr<Poco::Net::WebSocket>& ws, const char *message, int length, int flags)
- {
- // Size after which messages will be sent preceded with
- // 'nextmessage' frame to let the receiver know in advance
- // the size of larger coming message. All messages up to this
- // size are considered small messages.
- constexpr int SMALL_MESSAGE_SIZE = READ_BUFFER_SIZE / 2;
-
- if (length > SMALL_MESSAGE_SIZE)
- {
- const std::string nextmessage = "nextmessage: size=" + std::to_string(length);
- ws->sendFrame(nextmessage.data(), nextmessage.size());
- Log::debug("Message is long, sent " + nextmessage);
- }
-
- ws->sendFrame(message, length, flags);
- Log::debug("Sent frame: " + LOOLProtocol::getAbbreviatedMessage(std::string(message, length)));
- }
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/loolwsd/Util.hpp b/loolwsd/Util.hpp
index 462d542..cde7828 100644
--- a/loolwsd/Util.hpp
+++ b/loolwsd/Util.hpp
@@ -178,16 +178,6 @@ namespace Util
return s;
}
- /// Send frame. If it is too long, send a 'nextmessage:' before the real
- /// frame.
- void sendLargeFrame(const std::shared_ptr<Poco::Net::WebSocket>& ws, const char *message, int length, int flags = Poco::Net::WebSocket::FRAME_TEXT);
-
- /// Send frame as above, the std::string variant.
- inline void sendLargeFrame(const std::shared_ptr<Poco::Net::WebSocket>& ws, const std::vector<char> &message, int flags = Poco::Net::WebSocket::FRAME_TEXT)
- {
- sendLargeFrame(ws, message.data(), message.size(), flags);
- }
-
/// Given one or more patterns to allow, and one or more to deny,
/// the match member will return true if, and only if, the subject
/// matches the allowed list, but not the deny.
More information about the Libreoffice-commits
mailing list