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

2016-09-22 Thread Ashod Nakashian
 loolwsd/TileCache.cpp |   10 +++---
 loolwsd/TileCache.hpp |2 +-
 2 files changed, 4 insertions(+), 8 deletions(-)

New commits:
commit a04f75d515c619be9ba9f4300409ff53da1ab22e
Author: Ashod Nakashian 
Date:   Wed Sep 21 18:48:14 2016 -0400

loolwsd: no need to return anything when subscribing to TileCache

Change-Id: I7b8280bf150a74db243c17cea11afc40899c4c0d
Reviewed-on: https://gerrit.libreoffice.org/29165
Reviewed-by: Ashod Nakashian 
Tested-by: Ashod Nakashian 

diff --git a/loolwsd/TileCache.cpp b/loolwsd/TileCache.cpp
index 88ece86..d13400e 100644
--- a/loolwsd/TileCache.cpp
+++ b/loolwsd/TileCache.cpp
@@ -414,7 +414,7 @@ void TileCache::saveLastModified(const Timestamp& timestamp)
 }
 
 // FIXME: to be further simplified when we centralize tile messages.
-int TileCache::subscribeToTileRendering(const TileDesc& tile, const 
std::shared_ptr &subscriber)
+void TileCache::subscribeToTileRendering(const TileDesc& tile, const 
std::shared_ptr &subscriber)
 {
 assert(subscriber->getKind() == LOOLSession::Kind::ToClient);
 
@@ -433,7 +433,7 @@ int TileCache::subscribeToTileRendering(const TileDesc& 
tile, const std::shared_
 if (s.lock().get() == subscriber.get())
 {
 Log::debug("Redundant request to subscribe on tile " + name);
-return 0;
+tileBeingRendered->setVersion(tile.getVersion());
 }
 }
 
@@ -446,10 +446,8 @@ int TileCache::subscribeToTileRendering(const TileDesc& 
tile, const std::shared_
 if 
(std::chrono::duration_cast(duration).count() > 
COMMAND_TIMEOUT_MS)
 {
 // Tile painting has stalled. Reissue.
-return tileBeingRendered->getVersion();
+tileBeingRendered->setVersion(tile.getVersion());
 }
-
-return 0;
 }
 else
 {
@@ -463,8 +461,6 @@ int TileCache::subscribeToTileRendering(const TileDesc& 
tile, const std::shared_
 tileBeingRendered = std::make_shared(cachedName, 
tile);
 tileBeingRendered->_subscribers.push_back(subscriber);
 _tilesBeingRendered[cachedName] = tileBeingRendered;
-
-return tileBeingRendered->getVersion();
 }
 }
 
diff --git a/loolwsd/TileCache.hpp b/loolwsd/TileCache.hpp
index 322387d..fc0210b 100644
--- a/loolwsd/TileCache.hpp
+++ b/loolwsd/TileCache.hpp
@@ -40,7 +40,7 @@ public:
 
 /// Subscribes if no subscription exists and returns the version number.
 /// Otherwise returns 0 to signify a subscription exists.
-int subscribeToTileRendering(const TileDesc& tile, const 
std::shared_ptr &subscriber);
+void subscribeToTileRendering(const TileDesc& tile, const 
std::shared_ptr &subscriber);
 
 /// Cancels all tile requests by the given subscriber.
 std::string cancelTiles(const std::shared_ptr &subscriber);
___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


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

2016-09-22 Thread Ashod Nakashian
 loolwsd/TileCache.cpp |4 ++--
 loolwsd/TileCache.hpp |6 +++---
 2 files changed, 5 insertions(+), 5 deletions(-)

New commits:
commit b72c777f859dfb9b09e1fe7c6958713d28dd2380
Author: Ashod Nakashian 
Date:   Wed Sep 21 18:29:08 2016 -0400

loolwsd: const members where possible

Change-Id: I318a76ad9e0c0ca334eb9239b61e674ce9a6a596
Reviewed-on: https://gerrit.libreoffice.org/29162
Reviewed-by: Ashod Nakashian 
Tested-by: Ashod Nakashian 

diff --git a/loolwsd/TileCache.cpp b/loolwsd/TileCache.cpp
index 88ccaf5..4b2ac2d 100644
--- a/loolwsd/TileCache.cpp
+++ b/loolwsd/TileCache.cpp
@@ -364,12 +364,12 @@ std::string TileCache::cacheFileName(const TileDesc& tile)
 return oss.str();
 }
 
-bool TileCache::parseCacheFileName(const std::string& fileName, int& part, 
int& width, int& height, int& tilePosX, int& tilePosY, int& tileWidth, int& 
tileHeight)
+bool TileCache::parseCacheFileName(const std::string& fileName, int& part, 
int& width, int& height, int& tilePosX, int& tilePosY, int& tileWidth, int& 
tileHeight) const
 {
 return (std::sscanf(fileName.c_str(), "%d_%dx%d.%d,%d.%dx%d.png", &part, 
&width, &height, &tilePosX, &tilePosY, &tileWidth, &tileHeight) == 7);
 }
 
-bool TileCache::intersectsTile(const std::string& fileName, int part, int x, 
int y, int width, int height)
+bool TileCache::intersectsTile(const std::string& fileName, int part, int x, 
int y, int width, int height) const
 {
 int tilePart, tilePixelWidth, tilePixelHeight, tilePosX, tilePosY, 
tileWidth, tileHeight;
 if (parseCacheFileName(fileName, tilePart, tilePixelWidth, 
tilePixelHeight, tilePosX, tilePosY, tileWidth, tileHeight))
diff --git a/loolwsd/TileCache.hpp b/loolwsd/TileCache.hpp
index 6d206fc..322387d 100644
--- a/loolwsd/TileCache.hpp
+++ b/loolwsd/TileCache.hpp
@@ -80,10 +80,10 @@ private:
 void removeFile(const std::string& fileName);
 
 std::string cacheFileName(const TileDesc& tile);
-bool parseCacheFileName(const std::string& fileName, int& part, int& 
width, int& height, int& tilePosX, int& tilePosY, int& tileWidth, int& 
tileHeight);
+bool parseCacheFileName(const std::string& fileName, int& part, int& 
width, int& height, int& tilePosX, int& tilePosY, int& tileWidth, int& 
tileHeight) const;
 
 /// Extract location from fileName, and check if it intersects with [x, y, 
width, height].
-bool intersectsTile(const std::string& fileName, int part, int x, int y, 
int width, int height);
+bool intersectsTile(const std::string& fileName, int part, int x, int y, 
int width, int height) const;
 
 /// Load the timestamp from modtime.txt.
 Poco::Timestamp getLastModified();
@@ -94,7 +94,7 @@ private:
 
 std::mutex _cacheMutex;
 
-std::mutex _tilesBeingRenderedMutex;
+mutable std::mutex _tilesBeingRenderedMutex;
 
 std::map> 
_tilesBeingRendered;
 };
___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


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

2016-05-21 Thread Ashod Nakashian
 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 
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 
Tested-by: Ashod Nakashian 

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 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 
 #include 
 #include 
-#include 
+#include 
 #include 
-#include 
 
 #include 
-#include 
 
-#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 000..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 
+#include 
+#include 
+
+#include 
+
+#include "Exceptions.hpp"
+#include "LOOLProtocol

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

2016-04-21 Thread Miklos Vajna
 loolwsd/TileCache.cpp |4 ++--
 loolwsd/TileCache.hpp |4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

New commits:
commit 0833a99b37907e5c82251abc0d52b6120ed70d3a
Author: Miklos Vajna 
Date:   Fri Apr 22 08:38:59 2016 +0200

TileCache: avoid copying these for each invocation

Change-Id: Icaf84699d7f54f2f977162a040aed1f4090f680d

diff --git a/loolwsd/TileCache.cpp b/loolwsd/TileCache.cpp
index 996d5f3..f05ffa6 100644
--- a/loolwsd/TileCache.cpp
+++ b/loolwsd/TileCache.cpp
@@ -44,7 +44,7 @@ using Poco::URI;
 
 using namespace LOOLProtocol;
 
-void TileBeingRendered::subscribe(std::weak_ptr session)
+void TileBeingRendered::subscribe(const std::weak_ptr& 
session)
 {
 _subscribers.push_back(session);
 }
@@ -382,7 +382,7 @@ void TileCache::invalidateTiles(const std::string& tiles)
 }
 }
 
-void TileCache::removeFile(const std::string fileName)
+void TileCache::removeFile(const std::string& fileName)
 {
 Log::warn("Removing tile: " + fileName);
 Util::removeFile(_persCacheDir + "/" + fileName);
diff --git a/loolwsd/TileCache.hpp b/loolwsd/TileCache.hpp
index 80c52be..cc4f746 100644
--- a/loolwsd/TileCache.hpp
+++ b/loolwsd/TileCache.hpp
@@ -35,7 +35,7 @@ class TileBeingRendered
 std::vector> _subscribers;
 
 public:
-void subscribe(std::weak_ptr session);
+void subscribe(const std::weak_ptr& session);
 std::vector> getSubscribers();
 };
 
@@ -84,7 +84,7 @@ public:
 void invalidateTiles(int part, int x, int y, int width, int height);
 
 // Removes the given file from both editing and persistent cache
-void removeFile(const std::string fileName);
+void removeFile(const std::string& fileName);
 
 private:
 /// Path of the (sub-)cache dir, the parameter specifies which (sub-)cache 
to use.
___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


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

2016-03-26 Thread Ashod Nakashian
 loolwsd/TileCache.cpp |   13 -
 loolwsd/TileCache.hpp |3 ---
 2 files changed, 4 insertions(+), 12 deletions(-)

New commits:
commit 92ef78b6084ac8abc80eaa291a4a6fc9495b37f8
Author: Ashod Nakashian 
Date:   Sat Mar 26 08:14:42 2016 -0400

loolwsd: optimized TileCache::toplevelCacheDirName away

Change-Id: Iaac48b77e186e8069017093dffc1c432cfca8572
Reviewed-on: https://gerrit.libreoffice.org/23535
Reviewed-by: Ashod Nakashian 
Tested-by: Ashod Nakashian 

diff --git a/loolwsd/TileCache.cpp b/loolwsd/TileCache.cpp
index 201d7c9..c51f83a 100644
--- a/loolwsd/TileCache.cpp
+++ b/loolwsd/TileCache.cpp
@@ -308,11 +308,6 @@ void TileCache::removeFile(const std::string fileName)
 Util::removeFile(editingTextFile);
 }
 
-std::string TileCache::toplevelCacheDirName()
-{
-return _rootCacheDir;
-}
-
 std::string TileCache::cacheDirName(const bool useEditingCache)
 {
 return (useEditingCache ? _editCacheDir : _persCacheDir);
@@ -354,7 +349,7 @@ bool TileCache::intersectsTile(const std::string& fileName, 
int part, int x, int
 
 Timestamp TileCache::getLastModified()
 {
-std::fstream modTimeFile(toplevelCacheDirName() + "/modtime.txt", 
std::ios::in);
+std::fstream modTimeFile(_rootCacheDir + "/modtime.txt", std::ios::in);
 
 if (!modTimeFile.is_open())
 return 0;
@@ -368,7 +363,7 @@ Timestamp TileCache::getLastModified()
 
 void TileCache::saveLastModified(const Poco::Timestamp& timestamp)
 {
-std::fstream modTimeFile(toplevelCacheDirName() + "/modtime.txt", 
std::ios::out);
+std::fstream modTimeFile(_rootCacheDir + "/modtime.txt", std::ios::out);
 modTimeFile << timestamp.raw() << std::endl;
 modTimeFile.close();
 }
@@ -417,7 +412,7 @@ void TileCache::setup(const std::string& timestamp)
 if (cleanEverything)
 {
 // document changed externally, clean up everything
-const auto path = toplevelCacheDirName();
+const auto path = _rootCacheDir;
 Util::removeFile(path, true);
 Log::info("Completely cleared cache: " + path);
 }
@@ -429,7 +424,7 @@ void TileCache::setup(const std::string& timestamp)
 Log::info("Cleared the editing cache: " + path);
 }
 
-File cacheDir(toplevelCacheDirName());
+File cacheDir(_rootCacheDir);
 cacheDir.createDirectories();
 
 saveLastModified(lastModified);
diff --git a/loolwsd/TileCache.hpp b/loolwsd/TileCache.hpp
index 8b08681..aad3e8d 100644
--- a/loolwsd/TileCache.hpp
+++ b/loolwsd/TileCache.hpp
@@ -67,9 +67,6 @@ public:
 void removeFile(const std::string fileName);
 
 private:
-/// Toplevel cache dirname.
-std::string toplevelCacheDirName();
-
 /// Path of the (sub-)cache dir, the parameter specifies which (sub-)cache 
to use.
 std::string cacheDirName(bool useEditingCache);
 
___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


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

2015-08-12 Thread Mihai Varga
 loolwsd/TileCache.cpp |4 
 loolwsd/TileCache.hpp |5 +
 2 files changed, 9 insertions(+)

New commits:
commit 3e0a3d9ed6bd612e56ab38d8189f63ed2fe35af7
Author: Mihai Varga 
Date:   Wed Aug 12 15:31:02 2015 +0300

loolwsd: use a mutex when moving/removing tiles form the cache

diff --git a/loolwsd/TileCache.cpp b/loolwsd/TileCache.cpp
index 95bb2f5..01714a4 100644
--- a/loolwsd/TileCache.cpp
+++ b/loolwsd/TileCache.cpp
@@ -151,9 +151,11 @@ void TileCache::documentSaved()
 for (const auto& it : _toBeRemoved)
 File(persistentDirName + "/" + it).remove();
 
+_cacheMutex.lock();
 // then move the new tiles from the Editing cache to Persistent
 for (auto tileIterator = DirectoryIterator(cacheDirName(true)); 
tileIterator != DirectoryIterator(); ++tileIterator)
 tileIterator->moveTo(persistentDirName);
+_cacheMutex.unlock();
 
 // update status
 _toBeRemoved.clear();
@@ -195,6 +197,7 @@ void TileCache::invalidateTiles(int part, int x, int y, int 
width, int height)
 File editingDir(editingDirName);
 if (editingDir.exists() && editingDir.isDirectory())
 {
+_cacheMutex.lock();
 for (auto tileIterator = DirectoryIterator(editingDir); tileIterator 
!= DirectoryIterator(); ++tileIterator)
 {
 std::string fileName = tileIterator.path().getFileName();
@@ -203,6 +206,7 @@ void TileCache::invalidateTiles(int part, int x, int y, int 
width, int height)
 File(tileIterator.path()).remove();
 }
 }
+_cacheMutex.unlock();
 }
 
 // in the Persistent cache, add to _toBeRemoved for removal on save
diff --git a/loolwsd/TileCache.hpp b/loolwsd/TileCache.hpp
index ca3a51f..1e01078 100644
--- a/loolwsd/TileCache.hpp
+++ b/loolwsd/TileCache.hpp
@@ -17,6 +17,9 @@
 
 #include 
 #include 
+#include 
+
+using Poco::FastMutex;
 
 /** Handles the cache for tiles of one document.
 
@@ -86,6 +89,8 @@ private:
 
 /// Set of tiles that we want to remove from the Persistent cache on the 
next save.
 std::set _toBeRemoved;
+
+Poco::FastMutex _cacheMutex;
 };
 
 #endif
___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


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

2015-05-29 Thread Tor Lillqvist
 loolwsd/TileCache.cpp |   39 +++
 loolwsd/TileCache.hpp |2 ++
 2 files changed, 29 insertions(+), 12 deletions(-)

New commits:
commit 4303f1ee38d87cff8b1561674d729d1839c4fad9
Author: Tor Lillqvist 
Date:   Fri May 29 12:23:57 2015 +0300

Improve tile cache handling for file: documents

Handle also documents specified with a file: URI. Move creating the
modtime.txt file to the constructor of the TileCache object for the 
document.

diff --git a/loolwsd/TileCache.cpp b/loolwsd/TileCache.cpp
index 42b7f61..6622841 100644
--- a/loolwsd/TileCache.cpp
+++ b/loolwsd/TileCache.cpp
@@ -19,11 +19,13 @@
 
 #include 
 #include 
+#include 
 #include 
 #include 
 #include 
 #include 
 #include 
+#include 
 
 #include "TileCache.hpp"
 
@@ -32,20 +34,26 @@ using Poco::DirectoryIterator;
 using Poco::File;
 using Poco::SHA1Engine;
 using Poco::StringTokenizer;
+using Poco::SyntaxException;
 using Poco::Timestamp;
+using Poco::URI;
 
 TileCache::TileCache(const std::string& docURL) :
 _docURL(docURL)
 {
 File dir(cacheDirName());
 
-// TODO: Actually handle URLs (file: and http:), not file names.
-if (dir.exists() && dir.isDirectory() && File(_docURL).exists() && 
File(_docURL).isFile())
+try
 {
-if (getLastModified() != File(_docURL).getLastModified())
+URI uri(_docURL);
+if (uri.getScheme() == "" ||
+uri.getScheme() == "file")
 {
-dir.remove(true);
-   }
+setupForFile(dir, uri.getPath());
+}
+}
+catch (SyntaxException& e)
+{
 }
 }
 
@@ -74,13 +82,6 @@ void TileCache::saveTile(int part, int width, int height, 
int tilePosX, int tile
 std::fstream outStream(fileName, std::ios::out);
 outStream.write(data, size);
 outStream.close();
-
-// TODO: Actually handle URLs (file: and http:), not file names.
-if (!File(_docURL).exists() || !File(_docURL).isFile())
-return;
-std::fstream modTimeFile(dirName + "/modtime.txt", std::ios::out);
-modTimeFile << File(_docURL).getLastModified().raw() << std::endl;
-modTimeFile.close();
 }
 
 std::string TileCache::getStatus()
@@ -220,5 +221,19 @@ Timestamp TileCache::getLastModified()
 return result;
 }
 
+void TileCache::setupForFile(File& cacheDir, const std::string& path)
+{
+if (File(path).exists() && File(path).isFile())
+{
+if (cacheDir.exists() && getLastModified() != 
File(path).getLastModified())
+{
+cacheDir.remove(true);
+}
+cacheDir.createDirectories();
+std::fstream modTimeFile(cacheDir.path() + "/modtime.txt", 
std::ios::out);
+modTimeFile << File(path).getLastModified().raw() << std::endl;
+modTimeFile.close();
+}
+}
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/loolwsd/TileCache.hpp b/loolwsd/TileCache.hpp
index 21704a2..7c856b4 100644
--- a/loolwsd/TileCache.hpp
+++ b/loolwsd/TileCache.hpp
@@ -14,6 +14,7 @@
 #include 
 #include 
 
+#include 
 #include 
 
 class TileCache
@@ -38,6 +39,7 @@ private:
 std::string cacheFileName(int part, int width, int height, int tilePosX, 
int tilePosY, int tileWidth, int tileHeight);
 bool parseCacheFileName(std::string& fileName, int& part, int& width, int& 
height, int& tilePosX, int& tilePosY, int& tileWidth, int& tileHeight);
 Poco::Timestamp getLastModified();
+void setupForFile(Poco::File& cacheDir, const std::string& path);
 
 const std::string& _docURL;
 };
___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits