// -*- C++ -*-
/**
- * \file GraphicsCache.h
- * Read the file COPYING
+ * \file GraphicsCache.h
+ * This file is part of LyX, the document processor.
+ * Licence details can be found in the file COPYING.
*
* \author Baruch Even
* \author Angus Leeming
*
- * Full author contact details available in file CREDITS
+ * Full author contact details are available in file CREDITS.
*
- * grfx::Cache is the manager of the image cache.
- * It is responsible for creating the grfx::CacheItem's and maintaining them.
+ * lyx::graphics::Cache is the manager of the image cache.
+ * It is responsible for creating the lyx::graphics::CacheItem's
+ * and maintaining them.
*
- * grfx::Cache is a singleton class. It is possible to have only one
- * instance of it at any moment.
+ * lyx::graphics::Cache is a singleton class. It is possible to have only one
+ * instance of it at any moment.
*/
#ifndef GRAPHICSCACHE_H
#define GRAPHICSCACHE_H
-#ifdef __GNUG__
-#pragma interface
-#endif
-
-#include "LString.h"
+#include <memory>
+#include <string>
#include <vector>
-#include <boost/utility.hpp>
-#include <boost/scoped_ptr.hpp>
-#include <boost/shared_ptr.hpp>
-namespace grfx {
+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 grfx
+} // namespace graphics
+} // namespace lyx
#endif // GRAPHICSCACHE_H