+ /// This is a singleton class. Get the instance.
+ static Cache & get();
+
+ /** Which graphics formats can be loaded directly by the image loader.
+ * Other formats can be loaded if a converter to a loadable format
+ * can be defined.
+ */
+ std::vector<std::string> const & loadableFormats() const;
+
+ /// Add a graphics file to the cache.
+ void add(support::FileName const & file, support::FileName const & doc_file) const;
+
+ /// Remove a file from the cache.
+ void remove(support::FileName const & file) const;
+
+ /// Returns \c true if the file is in the cache.
+ bool inCache(support::FileName const & file) const;
+
+ /** Get the cache item associated with file.
+ * Returns an empty container if there is no such item.
+ *
+ * IMPORTANT: whatever uses an image must make a local copy of this
+ * ItemPtr. The shared_ptr<>::use_count() function is
+ * used to ascertain whether or not to remove the item from the cache
+ * when remove(file) is called.
+ *
+ * You have been warned!
+ */
+ typedef std::shared_ptr<CacheItem> ItemPtr;
+ ///
+ ItemPtr const item(support::FileName const & file) const;