[Libreoffice-commits] online.git: loolwsd/TileCache.cpp loolwsd/TileCache.hpp loolwsd/TileDesc.hpp

Ashod Nakashian ashod.nakashian at collabora.co.uk
Sat May 21 15:49:28 UTC 2016


 loolwsd/TileCache.cpp |   50 -------------------
 loolwsd/TileCache.hpp |   62 +-----------------------
 loolwsd/TileDesc.hpp  |  128 ++++++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 131 insertions(+), 109 deletions(-)

New commits:
commit b2fa9d6f2ec8c16c52e657841564292f45f90fdb
Author: Ashod Nakashian <ashod.nakashian at collabora.co.uk>
Date:   Sat May 21 09:41:23 2016 -0400

    loolwsd: moved TileDesc into own file
    
    Change-Id: I54162f7ebaaca51f9c52a30af1e278db212562fa
    Reviewed-on: https://gerrit.libreoffice.org/25261
    Reviewed-by: Ashod Nakashian <ashnakash at gmail.com>
    Tested-by: Ashod Nakashian <ashnakash at gmail.com>

diff --git a/loolwsd/TileCache.cpp b/loolwsd/TileCache.cpp
index 836cb5f..bac923d 100644
--- a/loolwsd/TileCache.cpp
+++ b/loolwsd/TileCache.cpp
@@ -44,56 +44,6 @@ using Poco::Timestamp;
 
 using namespace LOOLProtocol;
 
-std::string TileDesc::serialize(const std::string& prefix) const
-{
-    std::ostringstream oss;
-    oss << prefix
-        << " part=" << _part
-        << " width=" << _width
-        << " height=" << _height
-        << " tileposx=" << _tilePosX
-        << " tileposy=" << _tilePosY
-        << " tilewidth=" << _tileWidth
-        << " tileheight=" << _tileHeight;
-    if (_id >= 0)
-    {
-        oss << " id=" << _id;
-    }
-
-    return oss.str();
-}
-
-TileDesc TileDesc::parse(const Poco::StringTokenizer& tokens)
-{
-    // We don't expect undocument fields and
-    // assume all values to be int.
-    std::map<std::string, int> pairs;
-
-    // id is optional.
-    pairs["id"] = -1;
-
-    for (size_t i = 0; i < tokens.count(); ++i)
-    {
-        std::string name;
-        int value = -1;
-        if (parseNameIntegerPair(tokens[i], name, value))
-        {
-            pairs[name] = value;
-        }
-    }
-
-    return TileDesc(pairs["part"], pairs["width"], pairs["height"],
-                    pairs["tileposx"], pairs["tileposy"],
-                    pairs["tilewidth"], pairs["tileheight"],
-                    pairs["id"]);
-}
-
-TileDesc TileDesc::parse(const std::string& message)
-{
-    StringTokenizer tokens(message, " ", StringTokenizer::TOK_IGNORE_EMPTY | StringTokenizer::TOK_TRIM);
-    return parse(tokens);
-}
-
 TileCache::TileCache(const std::string& docURL,
                      const Timestamp& modifiedTime,
                      const std::string& cacheDir) :
diff --git a/loolwsd/TileCache.hpp b/loolwsd/TileCache.hpp
index 617ca67..4f72ef8 100644
--- a/loolwsd/TileCache.hpp
+++ b/loolwsd/TileCache.hpp
@@ -13,72 +13,16 @@
 #include <fstream>
 #include <memory>
 #include <mutex>
-#include <set>
+#include <map>
 #include <string>
-#include <vector>
 
 #include <Poco/Timestamp.h>
-#include <Poco/StringTokenizer.h>
 
-#include "Exceptions.hpp"
-
-/** Handles the cache for tiles of one document.
-*/
+#include "TileDesc.hpp"
 
 class ClientSession;
 
-/// Tile Descriptor
-/// Represents a tile's coordinates and dimensions.
-class TileDesc
-{
-public:
-    TileDesc(int part, int width, int height, int tilePosX, int tilePosY, int tileWidth, int tileHeight, int id = -1) :
-        _part(part),
-        _width(width),
-        _height(height),
-        _tilePosX(tilePosX),
-        _tilePosY(tilePosY),
-        _tileWidth(tileWidth),
-        _tileHeight(tileHeight),
-        _id(id)
-    {
-        if (_part < 0 ||
-            _width <= 0 ||
-            _height <= 0 ||
-            _tilePosX < 0 ||
-            _tilePosY < 0 ||
-            _tileWidth <= 0 ||
-            _tileHeight <= 0)
-        {
-            throw BadArgumentException("Invalid tile descriptor.");
-        }
-    }
-
-    int getPart() const { return _part; }
-    int getWidth() const { return _width; }
-    int getHeight() const { return _height; }
-    int getTilePosX() const { return _tilePosX; }
-    int getTilePosY() const { return _tilePosY; }
-    int getTileWidth() const { return _tileWidth; }
-    int getTileHeight() const { return _tileHeight; }
-
-    std::string serialize(const std::string& prefix = "") const;
-
-    /// Deserialize a TileDesc from a string format.
-    static TileDesc parse(const std::string& message);
-    static TileDesc parse(const Poco::StringTokenizer& tokens);
-
-private:
-    int _part;
-    int _width;
-    int _height;
-    int _tilePosX;
-    int _tilePosY;
-    int _tileWidth;
-    int _tileHeight;
-    int _id;
-};
-
+/// Handles the caching of tiles of one document.
 class TileCache
 {
     struct TileBeingRendered;
diff --git a/loolwsd/TileDesc.hpp b/loolwsd/TileDesc.hpp
new file mode 100644
index 0000000..c8ee2d8
--- /dev/null
+++ b/loolwsd/TileDesc.hpp
@@ -0,0 +1,128 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#ifndef INCLUDED_TILEDESC_HPP
+#define INCLUDED_TILEDESC_HPP
+
+#include <map>
+#include <sstream>
+#include <string>
+
+#include <Poco/StringTokenizer.h>
+
+#include "Exceptions.hpp"
+#include "LOOLProtocol.hpp"
+
+/// Tile Descriptor
+/// Represents a tile's coordinates and dimensions.
+class TileDesc
+{
+public:
+    TileDesc(int part, int width, int height, int tilePosX, int tilePosY, int tileWidth, int tileHeight, int id = -1) :
+        _part(part),
+        _width(width),
+        _height(height),
+        _tilePosX(tilePosX),
+        _tilePosY(tilePosY),
+        _tileWidth(tileWidth),
+        _tileHeight(tileHeight),
+        _id(id)
+    {
+        if (_part < 0 ||
+            _width <= 0 ||
+            _height <= 0 ||
+            _tilePosX < 0 ||
+            _tilePosY < 0 ||
+            _tileWidth <= 0 ||
+            _tileHeight <= 0)
+        {
+            throw BadArgumentException("Invalid tile descriptor.");
+        }
+    }
+
+    int getPart() const { return _part; }
+    int getWidth() const { return _width; }
+    int getHeight() const { return _height; }
+    int getTilePosX() const { return _tilePosX; }
+    int getTilePosY() const { return _tilePosY; }
+    int getTileWidth() const { return _tileWidth; }
+    int getTileHeight() const { return _tileHeight; }
+
+    /// Serialize this instance into a string.
+    /// Optionally prepend a prefix.
+    std::string serialize(const std::string& prefix = "") const
+    {
+        std::ostringstream oss;
+        oss << prefix
+            << " part=" << _part
+            << " width=" << _width
+            << " height=" << _height
+            << " tileposx=" << _tilePosX
+            << " tileposy=" << _tilePosY
+            << " tilewidth=" << _tileWidth
+            << " tileheight=" << _tileHeight;
+        if (_id >= 0)
+        {
+            oss << " id=" << _id;
+        }
+
+        return oss.str();
+    }
+
+    /// Deserialize a TileDesc from a tokenized string.
+    static
+    TileDesc parse(const Poco::StringTokenizer& tokens)
+    {
+        // We don't expect undocument fields and
+        // assume all values to be int.
+        std::map<std::string, int> pairs;
+
+        // id is optional.
+        pairs["id"] = -1;
+
+        for (size_t i = 0; i < tokens.count(); ++i)
+        {
+            std::string name;
+            int value = -1;
+            if (LOOLProtocol::parseNameIntegerPair(tokens[i], name, value))
+            {
+                pairs[name] = value;
+            }
+        }
+
+        return TileDesc(pairs["part"], pairs["width"], pairs["height"],
+                        pairs["tileposx"], pairs["tileposy"],
+                        pairs["tilewidth"], pairs["tileheight"],
+                        pairs["id"]);
+    }
+
+    /// Deserialize a TileDesc from a string format.
+    static
+    TileDesc parse(const std::string& message)
+    {
+        Poco::StringTokenizer tokens(message, " ",
+                                     Poco::StringTokenizer::TOK_IGNORE_EMPTY |
+                                     Poco::StringTokenizer::TOK_TRIM);
+        return parse(tokens);
+    }
+
+private:
+    int _part;
+    int _width;
+    int _height;
+    int _tilePosX;
+    int _tilePosY;
+    int _tileWidth;
+    int _tileHeight;
+    int _id;
+};
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */


More information about the Libreoffice-commits mailing list