Index: ui/file_manager/file_manager/foreground/js/metadata/metadata_cache_set.js |
diff --git a/ui/file_manager/file_manager/foreground/js/metadata/metadata_cache_set.js b/ui/file_manager/file_manager/foreground/js/metadata/metadata_cache_set.js |
index 2d1bd1825ca13afd295af0a11ae966e5287947ff..9fc872f7a9b4baf44dcbf468ef4d0441d7956a3b 100644 |
--- a/ui/file_manager/file_manager/foreground/js/metadata/metadata_cache_set.js |
+++ b/ui/file_manager/file_manager/foreground/js/metadata/metadata_cache_set.js |
@@ -103,6 +103,36 @@ MetadataCacheSet.prototype.invalidate = function(requestId, entries) { |
}; |
/** |
+ * Creates snapshot of the cache for entries. |
+ * @param {!Array<!FileEntry>} entries |
+ */ |
+MetadataCacheSet.prototype.createSnapshot = function(entries) { |
+ var items = {}; |
+ for (var i = 0; i < entries.length; i++) { |
+ var url = entries[i].toURL(); |
+ var item = this.items_.peek(url); |
+ if (item) |
+ items[url] = item.clone(); |
+ } |
+ return new MetadataCacheSet(new MetadataCacheSetStorageForObject(items)); |
+}; |
+ |
+/** |
+ * Returns whether all the given properties are fulfilled. |
+ * @param {!Array<!FileEntry>} entries Entries. |
+ * @param {!Array<string>} names Property names. |
+ * @return {boolean} |
+ */ |
+MetadataCacheSet.prototype.hasFreshCache = function(entries, names) { |
+ for (var i = 0; i < entries.length; i++) { |
+ var item = this.items_.peek(entries[i].toURL()); |
+ if (!(item && item.hasFreshCache(names))) |
+ return false; |
+ } |
+ return true; |
+}; |
+ |
+/** |
* Interface of raw strage for MetadataCacheItem. |
* TODO(hirono): Add implementation of the interface for LRUCache. |
* @interface |