summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Meeks <michael.meeks@collabora.com>2019-02-13 18:23:37 +0100
committerMichael Meeks <michael.meeks@collabora.com>2019-02-13 18:24:36 +0100
commitaf31537a2a9eee7ce0ef727d3bba46963a66ed6a (patch)
treead3a0f471e3f85986601795ce9f6f83b1d170046
parentf98a7f05925da20a6a499a1d089a41678c017e17 (diff)
Expose tile-id generation to unit tests.
Change-Id: Ie56967c82192f3983ac13d53fd73346f25e6c840
-rw-r--r--wsd/ClientSession.cpp19
-rw-r--r--wsd/ClientSession.hpp3
-rw-r--r--wsd/TileDesc.hpp8
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;