[Libreoffice-commits] online.git: Branch 'private/hcvcastro/forking' - loolwsd/TileCache.cpp

Henry Castro hcastro at collabora.com
Sat Jul 25 17:07:17 PDT 2015


 loolwsd/TileCache.cpp |   13 +++++++++++++
 1 file changed, 13 insertions(+)

New commits:
commit 541ad06596ab6e19624c7a2fd788af73548fb9a1
Author: Henry Castro <hcastro at collabora.com>
Date:   Sat Jul 25 20:00:07 2015 -0400

    loolwsd: LRU expiry persistent cache
    
    When tile requests from the cache, update time stamp file
    so LRU tiles are removed.

diff --git a/loolwsd/TileCache.cpp b/loolwsd/TileCache.cpp
index 2ee9da7..2203653 100644
--- a/loolwsd/TileCache.cpp
+++ b/loolwsd/TileCache.cpp
@@ -31,6 +31,9 @@
 #include "LOOLProtocol.hpp"
 #include "TileCache.hpp"
 
+// 1 hour tile cache expired
+#define  TILE_EXPIRED 3600000000
+
 using Poco::DigestEngine;
 using Poco::DirectoryIterator;
 using Poco::File;
@@ -93,6 +96,16 @@ std::unique_ptr<std::fstream> TileCache::lookupTile(int part, int width, int hei
         return nullptr;
 
     std::string fileName = dirName + "/" + cachedName;
+    File fileTile(fileName);
+
+    if ( fileTile.exists() )
+    {
+        Poco::Timestamp timeNow;
+        if ( timeNow - fileTile.getLastModified() > TILE_EXPIRED )
+            fileTile.remove();
+        else
+            fileTile.setLastModified(timeNow);
+    }
 
     std::unique_ptr<std::fstream> result(new std::fstream(fileName, std::ios::in));
 


More information about the Libreoffice-commits mailing list