[Libreoffice-commits] online.git: loolwsd/ChildProcessSession.hpp loolwsd/ClientSession.hpp loolwsd/LOOLSession.hpp loolwsd/MasterProcessSession.cpp loolwsd/MasterProcessSession.hpp loolwsd/PrisonerSession.hpp
Ashod Nakashian
ashod.nakashian at collabora.co.uk
Tue May 17 03:18:35 UTC 2016
loolwsd/ChildProcessSession.hpp | 11 --
loolwsd/ClientSession.hpp | 15 +--
loolwsd/LOOLSession.hpp | 8 -
loolwsd/MasterProcessSession.cpp | 186 ---------------------------------------
loolwsd/MasterProcessSession.hpp | 12 --
loolwsd/PrisonerSession.hpp | 29 ------
6 files changed, 10 insertions(+), 251 deletions(-)
New commits:
commit cf26d9191ccfe49590fe48be51758099b937a15a
Author: Ashod Nakashian <ashod.nakashian at collabora.co.uk>
Date: Mon May 16 19:30:03 2016 -0400
loolwsd: MasterProcessSession splitting: member function scope
Change-Id: I3fa43f761ccc93d52badff346941de2a8cd9de03
Reviewed-on: https://gerrit.libreoffice.org/25043
Reviewed-by: Ashod Nakashian <ashnakash at gmail.com>
Tested-by: Ashod Nakashian <ashnakash at gmail.com>
diff --git a/loolwsd/ChildProcessSession.hpp b/loolwsd/ChildProcessSession.hpp
index 7b6275e..ab552d3 100644
--- a/loolwsd/ChildProcessSession.hpp
+++ b/loolwsd/ChildProcessSession.hpp
@@ -44,12 +44,8 @@ public:
OnUnloadCallback onUnload);
virtual ~ChildProcessSession();
- virtual bool getStatus(const char *buffer, int length) override;
-
- virtual bool getCommandValues(const char *buffer, int length, Poco::StringTokenizer& tokens) override;
-
- virtual bool getPartPageRectangles(const char *buffer, int length) override;
-
+ bool getStatus(const char *buffer, int length);
+ bool getPartPageRectangles(const char *buffer, int length);
virtual void disconnect() override;
int getViewId() const { return _viewId; }
@@ -67,7 +63,8 @@ public:
protected:
bool loadDocument(const char *buffer, int length, Poco::StringTokenizer& tokens);
- virtual void sendFontRendering(const char *buffer, int length, Poco::StringTokenizer& tokens) override;
+ void sendFontRendering(const char *buffer, int length, Poco::StringTokenizer& tokens);
+ bool getCommandValues(const char *buffer, int length, Poco::StringTokenizer& tokens);
bool clientZoom(const char *buffer, int length, Poco::StringTokenizer& tokens);
bool clientVisibleArea(const char *buffer, int length, Poco::StringTokenizer& tokens);
diff --git a/loolwsd/ClientSession.hpp b/loolwsd/ClientSession.hpp
index 1f4bb74..8bc7bec 100644
--- a/loolwsd/ClientSession.hpp
+++ b/loolwsd/ClientSession.hpp
@@ -52,19 +52,16 @@ public:
private:
virtual bool _handleInput(const char *buffer, int length) override;
- virtual bool getStatus(const char *buffer, int length) override;
-
- virtual bool getCommandValues(const char *buffer, int length, Poco::StringTokenizer& tokens) override;
-
- virtual bool getPartPageRectangles(const char *buffer, int length) override;
bool loadDocument(const char *buffer, int length, Poco::StringTokenizer& tokens);
- virtual void sendTile(const char *buffer, int length, Poco::StringTokenizer& tokens);
-
- virtual void sendCombinedTiles(const char *buffer, int length, Poco::StringTokenizer& tokens);
+ bool getStatus(const char *buffer, int length);
+ bool getCommandValues(const char *buffer, int length, Poco::StringTokenizer& tokens);
+ bool getPartPageRectangles(const char *buffer, int length);
- virtual void sendFontRendering(const char *buffer, int length, Poco::StringTokenizer& tokens) override;
+ void sendTile(const char *buffer, int length, Poco::StringTokenizer& tokens);
+ void sendCombinedTiles(const char *buffer, int length, Poco::StringTokenizer& tokens);
+ void sendFontRendering(const char *buffer, int length, Poco::StringTokenizer& tokens);
private:
diff --git a/loolwsd/LOOLSession.hpp b/loolwsd/LOOLSession.hpp
index e28fd4b..137a0d9 100644
--- a/loolwsd/LOOLSession.hpp
+++ b/loolwsd/LOOLSession.hpp
@@ -42,12 +42,6 @@ public:
void sendTextFrame(const std::string& text);
void sendBinaryFrame(const char *buffer, int length);
- virtual bool getStatus(const char *buffer, int length) = 0;
-
- virtual bool getCommandValues(const char *buffer, int length, Poco::StringTokenizer& tokens) = 0;
-
- virtual bool getPartPageRectangles(const char *buffer, int length) = 0;
-
bool handleInput(const char *buffer, int length);
/// Invoked when we want to disconnect a session.
@@ -85,8 +79,6 @@ protected:
/// Parses the options of the "load" command, shared between MasterProcessSession::loadDocument() and ChildProcessSession::loadDocument().
void parseDocOptions(const Poco::StringTokenizer& tokens, int& part, std::string& timestamp);
- virtual void sendFontRendering(const char *buffer, int length, Poco::StringTokenizer& tokens) = 0;
-
void updateLastActivityTime()
{
_lastActivityTime = std::chrono::steady_clock::now();
diff --git a/loolwsd/MasterProcessSession.cpp b/loolwsd/MasterProcessSession.cpp
index f8b94d7..9c491bb 100644
--- a/loolwsd/MasterProcessSession.cpp
+++ b/loolwsd/MasterProcessSession.cpp
@@ -49,32 +49,6 @@ MasterProcessSession::~MasterProcessSession()
{
}
-bool MasterProcessSession::getStatus(const char *buffer, int length)
-{
- const std::string status = _docBroker->tileCache().getTextFile("status.txt");
- if (!status.empty())
- {
- sendTextFrame(status);
-
- // And let clients know if they hold the edit lock.
- std::string message = "editlock: ";
- message += std::to_string(isEditLocked());
- Log::debug("Forwarding [" + message + "] in response to status.");
- sendTextFrame(message);
-
- return true;
- }
-
- if (_peer.expired())
- {
- Log::trace("Dispatching child to handle [getStatus].");
- dispatchChild();
- }
-
- forwardToPeer(buffer, length);
- return true;
-}
-
void MasterProcessSession::setEditLock(const bool value)
{
// Update the sate and forward to child.
@@ -83,166 +57,6 @@ void MasterProcessSession::setEditLock(const bool value)
forwardToPeer(msg.data(), msg.size());
}
-bool MasterProcessSession::getCommandValues(const char *buffer, int length, StringTokenizer& tokens)
-{
- std::string command;
- if (tokens.count() != 2 || !getTokenString(tokens[1], "command", command))
- {
- sendTextFrame("error: cmd=commandvalues kind=syntax");
- return false;
- }
-
- const std::string cmdValues = _docBroker->tileCache().getTextFile("cmdValues" + command + ".txt");
- if (cmdValues.size() > 0)
- {
- sendTextFrame(cmdValues);
- return true;
- }
-
- if (_peer.expired())
- dispatchChild();
- forwardToPeer(buffer, length);
- return true;
-}
-
-bool MasterProcessSession::getPartPageRectangles(const char *buffer, int length)
-{
- const std::string partPageRectangles = _docBroker->tileCache().getTextFile("partpagerectangles.txt");
- if (partPageRectangles.size() > 0)
- {
- sendTextFrame(partPageRectangles);
- return true;
- }
-
- if (_peer.expired())
- dispatchChild();
- forwardToPeer(buffer, length);
- return true;
-}
-
-void MasterProcessSession::sendFontRendering(const char *buffer, int length, StringTokenizer& tokens)
-{
- std::string font;
- if (tokens.count() < 2 ||
- !getTokenString(tokens[1], "font", font))
- {
- sendTextFrame("error: cmd=renderfont kind=syntax");
- return;
- }
-
- const std::string response = "renderfont: " + Poco::cat(std::string(" "), tokens.begin() + 1, tokens.end()) + "\n";
-
- std::vector<char> output;
- output.resize(response.size());
- std::memcpy(output.data(), response.data(), response.size());
-
- std::unique_ptr<std::fstream> cachedRendering = _docBroker->tileCache().lookupRendering(font, "font");
- if (cachedRendering && cachedRendering->is_open())
- {
- cachedRendering->seekg(0, std::ios_base::end);
- size_t pos = output.size();
- std::streamsize size = cachedRendering->tellg();
- output.resize(pos + size);
- cachedRendering->seekg(0, std::ios_base::beg);
- cachedRendering->read(output.data() + pos, size);
- cachedRendering->close();
-
- sendBinaryFrame(output.data(), output.size());
- return;
- }
-
- if (_peer.expired())
- dispatchChild();
- forwardToPeer(buffer, length);
-}
-
-void MasterProcessSession::sendTile(const char * /*buffer*/, int /*length*/, StringTokenizer& tokens)
-{
- try
- {
- auto tileDesc = TileDesc::parse(tokens);
- _docBroker->handleTileRequest(tileDesc, shared_from_this());
- }
- catch (const std::exception& exc)
- {
- Log::error(std::string("Failed to process tile command: ") + exc.what() + ".");
- sendTextFrame("error: cmd=tile kind=invalid");
- }
-}
-
-void MasterProcessSession::sendCombinedTiles(const char* /*buffer*/, int /*length*/, StringTokenizer& tokens)
-{
- int part, pixelWidth, pixelHeight, tileWidth, tileHeight;
- std::string tilePositionsX, tilePositionsY;
- if (tokens.count() < 8 ||
- !getTokenInteger(tokens[1], "part", part) ||
- !getTokenInteger(tokens[2], "width", pixelWidth) ||
- !getTokenInteger(tokens[3], "height", pixelHeight) ||
- !getTokenString (tokens[4], "tileposx", tilePositionsX) ||
- !getTokenString (tokens[5], "tileposy", tilePositionsY) ||
- !getTokenInteger(tokens[6], "tilewidth", tileWidth) ||
- !getTokenInteger(tokens[7], "tileheight", tileHeight))
- {
- sendTextFrame("error: cmd=tilecombine kind=syntax");
- return;
- }
-
- if (part < 0 || pixelWidth <= 0 || pixelHeight <= 0 ||
- tileWidth <= 0 || tileHeight <= 0 ||
- tilePositionsX.empty() || tilePositionsY.empty())
- {
- sendTextFrame("error: cmd=tilecombine kind=invalid");
- return;
- }
-
- std::string reqTimestamp;
- size_t index = 8;
- if (tokens.count() > index && tokens[index].find("timestamp") == 0)
- {
- getTokenString(tokens[index], "timestamp", reqTimestamp);
- ++index;
- }
-
- int id = -1;
- if (tokens.count() > index && tokens[index].find("id") == 0)
- {
- getTokenInteger(tokens[index], "id", id);
- ++index;
- }
-
- StringTokenizer positionXtokens(tilePositionsX, ",", StringTokenizer::TOK_IGNORE_EMPTY | StringTokenizer::TOK_TRIM);
- StringTokenizer positionYtokens(tilePositionsY, ",", StringTokenizer::TOK_IGNORE_EMPTY | StringTokenizer::TOK_TRIM);
-
- size_t numberOfPositions = positionYtokens.count();
-
- // check that number of positions for X and Y is the same
- if (numberOfPositions != positionXtokens.count())
- {
- sendTextFrame("error: cmd=tilecombine kind=invalid");
- return;
- }
-
- for (size_t i = 0; i < numberOfPositions; ++i)
- {
- int x = 0;
- if (!stringToInteger(positionXtokens[i], x))
- {
- sendTextFrame("error: cmd=tilecombine kind=syntax");
- return;
- }
-
- int y = 0;
- if (!stringToInteger(positionYtokens[i], y))
- {
- sendTextFrame("error: cmd=tilecombine kind=syntax");
- return;
- }
-
- const TileDesc tile(part, pixelWidth, pixelHeight, x, y, tileWidth, tileHeight);
- _docBroker->handleTileRequest(tile, shared_from_this());
- }
-}
-
void MasterProcessSession::dispatchChild()
{
std::ostringstream oss;
diff --git a/loolwsd/MasterProcessSession.hpp b/loolwsd/MasterProcessSession.hpp
index 83437c4..5dc23db 100644
--- a/loolwsd/MasterProcessSession.hpp
+++ b/loolwsd/MasterProcessSession.hpp
@@ -29,12 +29,6 @@ class MasterProcessSession : public LOOLSession, public std::enable_shared_from_
std::shared_ptr<BasicTileQueue> queue);
virtual ~MasterProcessSession();
- virtual bool getStatus(const char *buffer, int length) override;
-
- virtual bool getCommandValues(const char *buffer, int length, Poco::StringTokenizer& tokens) override;
-
- virtual bool getPartPageRectangles(const char *buffer, int length) override;
-
std::shared_ptr<DocumentBroker> getDocumentBroker() const { return _docBroker; }
std::shared_ptr<BasicTileQueue> getQueue() const { return _queue; }
@@ -50,12 +44,6 @@ public:
bool _bLoadError = false;
protected:
- virtual void sendTile(const char *buffer, int length, Poco::StringTokenizer& tokens);
-
- virtual void sendCombinedTiles(const char *buffer, int length, Poco::StringTokenizer& tokens);
-
- virtual void sendFontRendering(const char *buffer, int length, Poco::StringTokenizer& tokens) override;
-
void dispatchChild();
void forwardToPeer(const char *buffer, int length);
diff --git a/loolwsd/PrisonerSession.hpp b/loolwsd/PrisonerSession.hpp
index 65418ee..5d8fddd 100644
--- a/loolwsd/PrisonerSession.hpp
+++ b/loolwsd/PrisonerSession.hpp
@@ -38,26 +38,6 @@ private:
std::weak_ptr<ClientSession> _peer;
#if 0
- public:
- MasterProcessSession(const std::string& id,
- const Kind kind,
- std::shared_ptr<Poco::Net::WebSocket> ws,
- std::shared_ptr<DocumentBroker> docBroker,
- std::shared_ptr<BasicTileQueue> queue);
- virtual ~MasterProcessSession();
-
- virtual bool getStatus(const char *buffer, int length) override;
-
- virtual bool getCommandValues(const char *buffer, int length, Poco::StringTokenizer& tokens) override;
-
- virtual bool getPartPageRectangles(const char *buffer, int length) override;
-
- /**
- * Return the URL of the saved-as document when it's ready. If called
- * before it's ready, the call blocks till then.
- */
- std::string getSaveAs();
-
std::shared_ptr<DocumentBroker> getDocumentBroker() const { return _docBroker; }
std::shared_ptr<BasicTileQueue> getQueue() const { return _queue; }
@@ -68,15 +48,6 @@ public:
// Raise this flag on ToClient from ToPrisoner to let ToClient know of load failures
bool _bLoadError = false;
- protected:
- virtual bool loadDocument(const char *buffer, int length, Poco::StringTokenizer& tokens) override;
-
- virtual void sendTile(const char *buffer, int length, Poco::StringTokenizer& tokens);
-
- virtual void sendCombinedTiles(const char *buffer, int length, Poco::StringTokenizer& tokens);
-
- virtual void sendFontRendering(const char *buffer, int length, Poco::StringTokenizer& tokens) override;
-
private:
void dispatchChild();
void forwardToPeer(const char *buffer, int length);
More information about the Libreoffice-commits
mailing list