#pragma once #include "cache.h" #include "memory.h" /*! */ class CGALCache { public: CGALCache(size_t limit = 100*1024*1024); static CGALCache *instance() { if (!inst) inst = new CGALCache; return inst; } bool contains(const std::string &id) const { return this->cache.contains(id); } shared_ptr get(const std::string &id) const; bool insert(const std::string &id, const shared_ptr &N); size_t maxSize() const; void setMaxSize(size_t limit); void clear(); void print(); private: static CGALCache *inst; struct cache_entry { shared_ptr N; std::string msg; cache_entry(const shared_ptr &N); ~cache_entry() { } }; Cache cache; };