X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fgraphics%2FGraphicsCache.h;h=0fd1dd0102a1945eb990c32140f79d7a4c2a2018;hb=94c65074e029937b549f5ed5af1001fadbe408be;hp=f3c764af738d4c5c0d04135a2f3f6bd6065f5957;hpb=3aa7e91a827fa15b3e0906b975c4755a2dcdb76d;p=lyx.git diff --git a/src/graphics/GraphicsCache.h b/src/graphics/GraphicsCache.h index f3c764af73..0fd1dd0102 100644 --- a/src/graphics/GraphicsCache.h +++ b/src/graphics/GraphicsCache.h @@ -1,39 +1,39 @@ // -*- 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 +#include #include -#include -#include -#include -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. @@ -43,32 +43,36 @@ public: * Other formats can be loaded if a converter to a loadable format * can be defined. */ - std::vector loadableFormats() const; + std::vector 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 ItemPtr; + typedef std::shared_ptr 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. */ @@ -79,9 +83,10 @@ private: /// Use the Pimpl idiom to hide the internals. class Impl; /// The pointer never changes although *pimpl_'s contents may. - boost::scoped_ptr const pimpl_; + Impl * const pimpl_; }; -} // namespace grfx +} // namespace graphics +} // namespace lyx #endif // GRAPHICSCACHE_H