]> git.lyx.org Git - lyx.git/blobdiff - src/graphics/GraphicsCache.h
small fix with footnote, use stringstream some more
[lyx.git] / src / graphics / GraphicsCache.h
index e9a8c6f88c88649e00fa6cb422fb6a0276efc1f5..712ad8006235d4da68371639c08482427111a7ed 100644 (file)
 
 #include "LString.h"
 #include "GraphicsCacheItem.h"
-#include "support/utility.hpp"
+#include <boost/utility.hpp>
+#include <boost/smart_ptr.hpp>
+
+class GraphicsCacheItem;
 
 /** GraphicsCache is the manager of the image cache.
     It is responsible of create the GraphicsCacheItem's and maintain them.
     GraphicsCache is a singleton class, there should be only one instance of
     it at any moment.
 */
-class GraphicsCache : public noncopyable {
+class GraphicsCache : boost::noncopyable {
 public:
        /// Get the instance of the class.
-       static GraphicsCache * getInstance();
+       static GraphicsCache & getInstance();
+       /// Public destructor due to compiler warnings.
+       ~GraphicsCache();
+
+       typedef boost::shared_ptr<GraphicsCacheItem> shared_ptr_item;
 
        /// Add a file to the cache.
-       GraphicsCacheItem * addFile(string const & filename);
+       shared_ptr_item addFile(string const & filename);
 
 private:
        /// Remove a cache item if it's count has gone to zero.
@@ -43,13 +50,8 @@ private:
        /// Private c-tor so we can control how many objects are instantiated.
        GraphicsCache() {}
        
-       /// Private d-tor so that no-one will destroy us.
-       ~GraphicsCache();
-       
-       /// Holder of the single instance of the class.
-       static GraphicsCache * singleton;
        ///
-       typedef std::map<string, GraphicsCacheItem *> CacheType;
+       typedef std::map<string, shared_ptr_item> CacheType;
        ///
        CacheType cache;