loolwsd/ClientSession.cpp | 26 +++++++++++--------------- loolwsd/ClientSession.hpp | 2 +- loolwsd/DocumentBroker.cpp | 5 ++--- loolwsd/DocumentBroker.hpp | 2 +- 4 files changed, 15 insertions(+), 20 deletions(-)
New commits: commit d266d124dfb5383c113996d799d3efe8274e0a99 Author: Ashod Nakashian <[email protected]> Date: Sun Oct 16 13:43:44 2016 -0400 loolwsd: argument cleanup Pass std::string instead of char* and length where a string is always constructed anyway. Also cleaner and safer code. Change-Id: I1c9341e2c81bbdb7adeb29d3fba59849b2617e95 Reviewed-on: https://gerrit.libreoffice.org/29954 Reviewed-by: Ashod Nakashian <[email protected]> Tested-by: Ashod Nakashian <[email protected]> diff --git a/loolwsd/ClientSession.cpp b/loolwsd/ClientSession.cpp index b46fe73..2aad600 100644 --- a/loolwsd/ClientSession.cpp +++ b/loolwsd/ClientSession.cpp @@ -172,7 +172,8 @@ bool ClientSession::_handleInput(const char *buffer, int length) } else if (tokens[0] == "status") { - return getStatus(buffer, length, docBroker); + assert(firstLine.size() == static_cast<size_t>(length)); + return forwardToChild(firstLine, docBroker); } else if (tokens[0] == "tile") { @@ -188,12 +189,12 @@ bool ClientSession::_handleInput(const char *buffer, int length) if ( (isReadOnly()) && tokens[0] != "downloadas" && tokens[0] != "userinactive" && tokens[0] != "useractive") { - std::string dummyFrame = "dummymsg"; - return forwardToChild(dummyFrame.c_str(), dummyFrame.size(), docBroker); + const std::string dummyFrame = "dummymsg"; + return forwardToChild(dummyFrame, docBroker); } else if (tokens[0] != "requestloksession") { - return forwardToChild(buffer, length, docBroker); + return forwardToChild(std::string(buffer, length), docBroker); } else { @@ -243,7 +244,7 @@ bool ClientSession::loadDocument(const char* /*buffer*/, int /*length*/, StringT oss << " options=" << _docOptions; const auto loadRequest = oss.str(); - return forwardToChild(loadRequest.c_str(), loadRequest.size(), docBroker); + return forwardToChild(loadRequest, docBroker); } catch (const Poco::SyntaxException&) { @@ -253,11 +254,6 @@ bool ClientSession::loadDocument(const char* /*buffer*/, int /*length*/, StringT return false; } -bool ClientSession::getStatus(const char *buffer, int length, const std::shared_ptr<DocumentBroker>& docBroker) -{ - return forwardToChild(buffer, length, docBroker); -} - bool ClientSession::getCommandValues(const char *buffer, int length, StringTokenizer& tokens, const std::shared_ptr<DocumentBroker>& docBroker) { @@ -273,7 +269,7 @@ bool ClientSession::getCommandValues(const char *buffer, int length, StringToken return sendTextFrame(cmdValues); } - return forwardToChild(buffer, length, docBroker); + return forwardToChild(std::string(buffer, length), docBroker); } bool ClientSession::getPartPageRectangles(const char *buffer, int length, @@ -285,7 +281,7 @@ bool ClientSession::getPartPageRectangles(const char *buffer, int length, return sendTextFrame(partPageRectangles); } - return forwardToChild(buffer, length, docBroker); + return forwardToChild(std::string(buffer, length), docBroker); } bool ClientSession::sendFontRendering(const char *buffer, int length, StringTokenizer& tokens, @@ -318,7 +314,7 @@ bool ClientSession::sendFontRendering(const char *buffer, int length, StringToke return sendBinaryFrame(output.data(), output.size()); } - return forwardToChild(buffer, length, docBroker); + return forwardToChild(std::string(buffer, length), docBroker); } bool ClientSession::sendTile(const char * /*buffer*/, int /*length*/, StringTokenizer& tokens, @@ -366,10 +362,10 @@ bool ClientSession::shutdownPeer(Poco::UInt16 statusCode) return false; } -bool ClientSession::forwardToChild(const char *buffer, int length, +bool ClientSession::forwardToChild(const std::string& message, const std::shared_ptr<DocumentBroker>& docBroker) { - return docBroker->forwardToChild(getId(), buffer, length); + return docBroker->forwardToChild(getId(), message); } /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/loolwsd/ClientSession.hpp b/loolwsd/ClientSession.hpp index b645d58..201e7c1 100644 --- a/loolwsd/ClientSession.hpp +++ b/loolwsd/ClientSession.hpp @@ -81,7 +81,7 @@ private: bool sendFontRendering(const char *buffer, int length, Poco::StringTokenizer& tokens, const std::shared_ptr<DocumentBroker>& docBroker); - bool forwardToChild(const char *buffer, int length, + bool forwardToChild(const std::string& message, const std::shared_ptr<DocumentBroker>& docBroker); private: diff --git a/loolwsd/DocumentBroker.cpp b/loolwsd/DocumentBroker.cpp index dceb1c5..624b2be 100644 --- a/loolwsd/DocumentBroker.cpp +++ b/loolwsd/DocumentBroker.cpp @@ -391,7 +391,7 @@ bool DocumentBroker::sendUnoSave(const bool dontSaveIfUnmodified) const auto saveArgs = oss.str(); Log::trace(".uno:Save arguments: " + saveArgs); const auto command = "uno .uno:Save " + saveArgs; - forwardToChild(sessionIt.second->getId(), command.data(), command.size()); + forwardToChild(sessionIt.second->getId(), command); return true; } @@ -767,9 +767,8 @@ void DocumentBroker::setModified(const bool value) _isModified = value; } -bool DocumentBroker::forwardToChild(const std::string& viewId, const char *buffer, int length) +bool DocumentBroker::forwardToChild(const std::string& viewId, const std::string& message) { - const auto message = std::string(buffer, length); Log::trace() << "Forwarding payload to child [" << viewId << "]: " << message << Log::end; const auto it = _sessions.find(viewId); diff --git a/loolwsd/DocumentBroker.hpp b/loolwsd/DocumentBroker.hpp index 7972903..f9ef407 100644 --- a/loolwsd/DocumentBroker.hpp +++ b/loolwsd/DocumentBroker.hpp @@ -258,7 +258,7 @@ public: bool handleInput(const std::vector<char>& payload); /// Forward a message from client session to its respective child session. - bool forwardToChild(const std::string& viewId, const char *buffer, int length); + bool forwardToChild(const std::string& viewId, const std::string& message); int getRenderedTileCount() { return _debugRenderedTileCount; } _______________________________________________ Libreoffice-commits mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
