diff options
author | Michael Meeks <michael.meeks@collabora.com> | 2019-02-13 18:23:37 +0100 |
---|---|---|
committer | Michael Meeks <michael.meeks@collabora.com> | 2019-02-13 18:24:36 +0100 |
commit | af31537a2a9eee7ce0ef727d3bba46963a66ed6a (patch) | |
tree | ad3a0f471e3f85986601795ce9f6f83b1d170046 | |
parent | f98a7f05925da20a6a499a1d089a41678c017e17 (diff) |
Expose tile-id generation to unit tests.
Change-Id: Ie56967c82192f3983ac13d53fd73346f25e6c840
-rw-r--r-- | wsd/ClientSession.cpp | 19 | ||||
-rw-r--r-- | wsd/ClientSession.hpp | 3 | ||||
-rw-r--r-- | wsd/TileDesc.hpp | 8 |
3 files changed, 13 insertions, 17 deletions
diff --git a/wsd/ClientSession.cpp b/wsd/ClientSession.cpp index fcd449744..3a6bf59dd 100644 --- a/wsd/ClientSession.cpp +++ b/wsd/ClientSession.cpp @@ -1060,8 +1060,7 @@ void ClientSession::enqueueSendMessage(const std::shared_ptr<Message>& data) { // Avoid sending tile if it has the same wireID as the previously sent tile tile.reset(new TileDesc(TileDesc::parse(data->firstLine()))); - const std::string tileID = generateTileID(*tile); - auto iter = _oldWireIds.find(tileID); + auto iter = _oldWireIds.find(tile->generateID()); if(iter != _oldWireIds.end() && tile->getWireId() != 0 && tile->getWireId() == iter->second) { LOG_INF("WSD filters out a tile with the same wireID: " << tile->serialize("tile:")); @@ -1110,7 +1109,7 @@ Authorization ClientSession::getAuthorization() const void ClientSession::addTileOnFly(const TileDesc& tile) { - _tilesOnFly.push_back({generateTileID(tile), std::chrono::steady_clock::now()}); + _tilesOnFly.push_back({tile.generateID(), std::chrono::steady_clock::now()}); } void ClientSession::clearTilesOnFly() @@ -1139,7 +1138,7 @@ void ClientSession::removeOutdatedTilesOnFly() size_t ClientSession::countIdenticalTilesOnFly(const TileDesc& tile) const { size_t count = 0; - std::string tileID = generateTileID(tile); + std::string tileID = tile.generateID(); for(auto& tileItem : _tilesOnFly) { if(tileItem.first == tileID) @@ -1283,7 +1282,7 @@ void ClientSession::handleTileInvalidation(const std::string& message, invalidTiles.emplace_back(part, _tileWidthPixel, _tileHeightPixel, j * _tileWidthTwips, i * _tileHeightTwips, _tileWidthTwips, _tileHeightTwips, -1, 0, -1, false); TileWireId oldWireId = 0; - auto iter = _oldWireIds.find(generateTileID(invalidTiles.back())); + auto iter = _oldWireIds.find(invalidTiles.back().generateID()); if(iter != _oldWireIds.end()) oldWireId = iter->second; @@ -1308,7 +1307,7 @@ void ClientSession::resetWireIdMap() void ClientSession::traceTileBySend(const TileDesc& tile, bool deduplicated) { - const std::string tileID = generateTileID(tile); + const std::string tileID = tile.generateID(); // Store wireId first auto iter = _oldWireIds.find(tileID); @@ -1367,12 +1366,4 @@ void ClientSession::clearTileSubscription() _tilesBeingRendered.clear(); } -std::string ClientSession::generateTileID(const TileDesc& tile) const -{ - std::ostringstream tileID; - tileID << tile.getPart() << ":" << tile.getTilePosX() << ":" << tile.getTilePosY() << ":" - << tile.getTileWidth() << ":" << tile.getTileHeight(); - return tileID.str(); -} - /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/wsd/ClientSession.hpp b/wsd/ClientSession.hpp index b701e5568..948e1b202 100644 --- a/wsd/ClientSession.hpp +++ b/wsd/ClientSession.hpp @@ -170,9 +170,6 @@ private: void handleTileInvalidation(const std::string& message, const std::shared_ptr<DocumentBroker>& docBroker); - /// Generate a unique id for a tile - std::string generateTileID(const TileDesc& tile) const; - private: std::weak_ptr<DocumentBroker> _docBroker; diff --git a/wsd/TileDesc.hpp b/wsd/TileDesc.hpp index fa945df14..3a68040c8 100644 --- a/wsd/TileDesc.hpp +++ b/wsd/TileDesc.hpp @@ -225,6 +225,14 @@ public: return parse(LOOLProtocol::tokenize(message.data(), message.size())); } + std::string generateID() const + { + std::ostringstream tileID; + tileID << getPart() << ":" << getTilePosX() << ":" << getTilePosY() << ":" + << getTileWidth() << ":" << getTileHeight(); + return tileID.str(); + } + private: int _part; int _width; |