#ifndef GRAPHICSCACHE_H
#define GRAPHICSCACHE_H
-#include "LString.h"
+#include <memory>
+#include <string>
#include <vector>
-#include <boost/utility.hpp>
-#include <boost/scoped_ptr.hpp>
-#include <boost/shared_ptr.hpp>
namespace lyx {
+
+namespace support { class FileName; }
+
namespace graphics {
class CacheItem;
-class Cache : boost::noncopyable {
+class Cache {
public:
/// This is a singleton class. Get the instance.
* Other formats can be loaded if a converter to a loadable format
* can be defined.
*/
- std::vector<string> loadableFormats() const;
+ std::vector<std::string> const & loadableFormats() const;
/// Add a graphics file to the cache.
- void add(string const & file) const;
+ void add(support::FileName const & file, support::FileName const & doc_file) const;
/// Remove a file from the cache.
- void remove(string const & file) const;
+ void remove(support::FileName const & file) const;
/// Returns \c true if the file is in the cache.
- bool inCache(string const & file) const;
+ 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 boost::shared_ptr<>::use_count() function is
+ * 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 boost::shared_ptr<CacheItem> ItemPtr;
+ typedef std::shared_ptr<CacheItem> ItemPtr;
///
- ItemPtr const item(string const & file) const;
+ ItemPtr const item(support::FileName const & file) const;
private:
+ /// noncopyable
+ Cache(Cache const &);
+ void operator=(Cache const &);
+
/** Make the c-tor, d-tor private so we can control how many objects
* are instantiated.
*/
/// Use the Pimpl idiom to hide the internals.
class Impl;
/// The pointer never changes although *pimpl_'s contents may.
- boost::scoped_ptr<Impl> const pimpl_;
+ Impl * const pimpl_;
};
} // namespace graphics