common/Message.hpp | 28 +++++++++++++++------------- test/TileQueueTests.cpp | 22 +++++++++++----------- wsd/ClientSession.cpp | 2 +- wsd/ClientSession.hpp | 16 ++++++++-------- wsd/DocumentBroker.cpp | 2 +- wsd/PrisonerSession.cpp | 8 ++++---- wsd/SenderQueue.hpp | 2 +- wsd/TileCache.cpp | 12 ++++++------ 8 files changed, 47 insertions(+), 45 deletions(-)
New commits: commit f1de0d0481ab6505e05e8705d36b49424876674c Author: Ashod Nakashian <ashod.nakash...@collabora.co.uk> Date: Sat Jan 21 19:51:02 2017 -0500 wsd: MessagePayload -> Message Change-Id: Ie65f7c707785dbbf85a2f98abf082fbc3ee7a64b Reviewed-on: https://gerrit.libreoffice.org/33428 Reviewed-by: Ashod Nakashian <ashnak...@gmail.com> Tested-by: Ashod Nakashian <ashnak...@gmail.com> diff --git a/common/Message.hpp b/common/Message.hpp index 42e8833..0ca667a 100644 --- a/common/Message.hpp +++ b/common/Message.hpp @@ -14,8 +14,10 @@ #include <string> #include <vector> +#include "Protocol.hpp" + /// The payload type used to send/receive data. -class MessagePayload +class Message { public: @@ -24,9 +26,9 @@ public: /// Construct a text message. /// message must include the full first-line. - MessagePayload(const std::string& message, - const enum Dir dir, - const enum Type type = Type::Text) : + Message(const std::string& message, + const enum Dir dir, + const enum Type type = Type::Text) : _data(message.data(), message.data() + message.size()), _tokens(LOOLProtocol::tokenize(_data.data(), _data.size())), _id(makeId(dir)), @@ -39,10 +41,10 @@ public: /// Construct a message from a string with type and /// reserve extra space (total, including message). /// message must include the full first-line. - MessagePayload(const std::string& message, - const enum Dir dir, - const enum Type type, - const size_t reserve) : + Message(const std::string& message, + const enum Dir dir, + const enum Type type, + const size_t reserve) : _data(std::max(reserve, message.size())), _tokens(LOOLProtocol::tokenize(message)), _id(makeId(dir)), @@ -55,11 +57,11 @@ public: } /// Construct a message from a character array with type. - /// data must be include the full first-line. - MessagePayload(const char* p, - const size_t len, - const enum Dir dir, - const enum Type type) : + /// Note: p must include the full first-line. + Message(const char* p, + const size_t len, + const enum Dir dir, + const enum Type type) : _data(p, p + len), _tokens(LOOLProtocol::tokenize(_data.data(), _data.size())), _id(makeId(dir)), diff --git a/test/TileQueueTests.cpp b/test/TileQueueTests.cpp index 3c50e61..2c33c08 100644 --- a/test/TileQueueTests.cpp +++ b/test/TileQueueTests.cpp @@ -269,9 +269,9 @@ void TileQueueTests::testPreviewsDeprioritization() void TileQueueTests::testSenderQueue() { - SenderQueue<std::shared_ptr<MessagePayload>> queue; + SenderQueue<std::shared_ptr<Message>> queue; - std::shared_ptr<MessagePayload> item; + std::shared_ptr<Message> item; // Empty queue CPPUNIT_ASSERT_EQUAL(false, queue.waitDequeue(item, 10)); @@ -286,7 +286,7 @@ void TileQueueTests::testSenderQueue() for (const auto& msg : messages) { - queue.enqueue(std::make_shared<MessagePayload>(msg, MessagePayload::Dir::Out)); + queue.enqueue(std::make_shared<Message>(msg, Message::Dir::Out)); } CPPUNIT_ASSERT_EQUAL(3UL, queue.size()); @@ -308,9 +308,9 @@ void TileQueueTests::testSenderQueue() void TileQueueTests::testSenderQueueTileDeduplication() { - SenderQueue<std::shared_ptr<MessagePayload>> queue; + SenderQueue<std::shared_ptr<Message>> queue; - std::shared_ptr<MessagePayload> item; + std::shared_ptr<Message> item; // Empty queue CPPUNIT_ASSERT_EQUAL(false, queue.waitDequeue(item, 10)); @@ -325,7 +325,7 @@ void TileQueueTests::testSenderQueueTileDeduplication() for (const auto& msg : part_messages) { - queue.enqueue(std::make_shared<MessagePayload>(msg, MessagePayload::Dir::Out)); + queue.enqueue(std::make_shared<Message>(msg, Message::Dir::Out)); } CPPUNIT_ASSERT_EQUAL(3UL, queue.size()); @@ -344,7 +344,7 @@ void TileQueueTests::testSenderQueueTileDeduplication() for (const auto& msg : dup_messages) { - queue.enqueue(std::make_shared<MessagePayload>(msg, MessagePayload::Dir::Out)); + queue.enqueue(std::make_shared<Message>(msg, Message::Dir::Out)); } CPPUNIT_ASSERT_EQUAL(1UL, queue.size()); @@ -358,9 +358,9 @@ void TileQueueTests::testSenderQueueTileDeduplication() void TileQueueTests::testInvalidateViewCursorDeduplication() { - SenderQueue<std::shared_ptr<MessagePayload>> queue; + SenderQueue<std::shared_ptr<Message>> queue; - std::shared_ptr<MessagePayload> item; + std::shared_ptr<Message> item; // Empty queue CPPUNIT_ASSERT_EQUAL(false, queue.waitDequeue(item, 10)); @@ -375,7 +375,7 @@ void TileQueueTests::testInvalidateViewCursorDeduplication() for (const auto& msg : view_messages) { - queue.enqueue(std::make_shared<MessagePayload>(msg, MessagePayload::Dir::Out)); + queue.enqueue(std::make_shared<Message>(msg, Message::Dir::Out)); } CPPUNIT_ASSERT_EQUAL(3UL, queue.size()); @@ -403,7 +403,7 @@ void TileQueueTests::testInvalidateViewCursorDeduplication() for (const auto& msg : dup_messages) { - queue.enqueue(std::make_shared<MessagePayload>(msg, MessagePayload::Dir::Out)); + queue.enqueue(std::make_shared<Message>(msg, Message::Dir::Out)); } CPPUNIT_ASSERT_EQUAL(1UL, queue.size()); diff --git a/wsd/ClientSession.cpp b/wsd/ClientSession.cpp index e32d53b..3bc76de 100644 --- a/wsd/ClientSession.cpp +++ b/wsd/ClientSession.cpp @@ -469,7 +469,7 @@ void ClientSession::senderThread() while (!stopping()) { - std::shared_ptr<MessagePayload> item; + std::shared_ptr<Message> item; if (_senderQueue.waitDequeue(item, static_cast<size_t>(COMMAND_TIMEOUT_MS))) { const std::vector<char>& data = item->data(); diff --git a/wsd/ClientSession.hpp b/wsd/ClientSession.hpp index 17904be..cd5c4dc 100644 --- a/wsd/ClientSession.hpp +++ b/wsd/ClientSession.hpp @@ -51,23 +51,23 @@ public: bool sendBinaryFrame(const char* buffer, int length) override { - auto payload = std::make_shared<MessagePayload>(buffer, length, - MessagePayload::Dir::Out, - MessagePayload::Type::Binary); + auto payload = std::make_shared<Message>(buffer, length, + Message::Dir::Out, + Message::Type::Binary); enqueueSendMessage(payload); return true; } bool sendTextFrame(const char* buffer, const int length) override { - auto payload = std::make_shared<MessagePayload>(buffer, length, - MessagePayload::Dir::Out, - MessagePayload::Type::Text); + auto payload = std::make_shared<Message>(buffer, length, + Message::Dir::Out, + Message::Type::Text); enqueueSendMessage(payload); return true; } - void enqueueSendMessage(const std::shared_ptr<MessagePayload>& data) + void enqueueSendMessage(const std::shared_ptr<Message>& data) { LOG_TRC(getName() << " enqueueing client message: " << data->abbreviation()); _senderQueue.enqueue(data); @@ -163,7 +163,7 @@ private: /// Wopi FileInfo object std::unique_ptr<WopiStorage::WOPIFileInfo> _wopiFileInfo; - SenderQueue<std::shared_ptr<MessagePayload>> _senderQueue; + SenderQueue<std::shared_ptr<Message>> _senderQueue; std::thread _senderThread; std::atomic<bool> _stop; }; diff --git a/wsd/DocumentBroker.cpp b/wsd/DocumentBroker.cpp index d5fb25a..1d699a2 100644 --- a/wsd/DocumentBroker.cpp +++ b/wsd/DocumentBroker.cpp @@ -709,7 +709,7 @@ void DocumentBroker::alertAllUsers(const std::string& msg) { Util::assertIsLocked(_mutex); - auto payload = std::make_shared<MessagePayload>(msg, MessagePayload::Dir::Out); + auto payload = std::make_shared<Message>(msg, Message::Dir::Out); LOG_DBG("Alerting all users of [" << _docKey << "]: " << msg); for (auto& it : _sessions) diff --git a/wsd/PrisonerSession.cpp b/wsd/PrisonerSession.cpp index 2a78950..55db938 100644 --- a/wsd/PrisonerSession.cpp +++ b/wsd/PrisonerSession.cpp @@ -281,10 +281,10 @@ bool PrisonerSession::forwardToPeer(const std::shared_ptr<ClientSession>& client LOG_TRC(getName() << " -> " << clientSession->getName() << ": " << message); - auto payload = std::make_shared<MessagePayload>(buffer, length, - MessagePayload::Dir::Out, - binary ? MessagePayload::Type::Binary - : MessagePayload::Type::Text); + auto payload = std::make_shared<Message>(buffer, length, + Message::Dir::Out, + binary ? Message::Type::Binary + : Message::Type::Text); clientSession->enqueueSendMessage(payload); return true; diff --git a/wsd/SenderQueue.hpp b/wsd/SenderQueue.hpp index 4c06560..c2dc60c 100644 --- a/wsd/SenderQueue.hpp +++ b/wsd/SenderQueue.hpp @@ -29,7 +29,7 @@ struct SendItem { std::weak_ptr<LOOLWebSocket> Socket; - std::shared_ptr<MessagePayload> Data; + std::shared_ptr<Message> Data; std::string Meta; std::chrono::steady_clock::time_point BirthTime; }; diff --git a/wsd/TileCache.cpp b/wsd/TileCache.cpp index e8fbebc..9c4b6f4 100644 --- a/wsd/TileCache.cpp +++ b/wsd/TileCache.cpp @@ -168,9 +168,9 @@ void TileCache::saveTileAndNotify(const TileDesc& tile, const char *data, const LOG_DBG("Sending tile message to " << subscriberCount << " subscribers: " + response); // Send to first subscriber as-is (without cache marker). - auto payload = std::make_shared<MessagePayload>(response, - MessagePayload::Dir::Out, - MessagePayload::Type::Binary, + auto payload = std::make_shared<Message>(response, + Message::Dir::Out, + Message::Type::Binary, response.size() + 1 + size); payload->append("\n", 1); payload->append(data, size); @@ -189,9 +189,9 @@ void TileCache::saveTileAndNotify(const TileDesc& tile, const char *data, const // Create a new Payload. payload.reset(); - payload = std::make_shared<MessagePayload>(response, - MessagePayload::Dir::Out, - MessagePayload::Type::Binary, + payload = std::make_shared<Message>(response, + Message::Dir::Out, + Message::Type::Binary, response.size() + size); payload->append(data, size); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits