openModeller  Version 1.4.0
CacheManager.hh
Go to the documentation of this file.
00001 
00027 #ifndef _CACHE_MANAGER_HH_
00028 #define _CACHE_MANAGER_HH_
00029 
00030 #include <string>
00031 #include <sstream>
00032 
00033 #include <openmodeller/os_specific.hh>
00034 
00035 /************************************************************/
00036 /*********************** Cache Manager **********************/
00037 
00048 class dllexp CacheManager {
00049 
00050 public:
00051 
00052   ~CacheManager();
00053 
00058   static void initialize( const std::string dir="" );
00059 
00065   static bool isCached( const std::string id, const std::string subdir="" );
00066 
00073   static bool isCachedMd5( const std::string id, const std::string subdir="" );
00074 
00080   static void cache( const std::string id, const std::ostringstream& content, const std::string subdir="" );
00081 
00088   static void cacheMd5( const std::string id, const std::ostringstream& content, const std::string subdir="" );
00089 
00095   static std::string getContentLocation( const std::string id, const std::string subdir="" );
00096 
00103   static std::string getContentLocationMd5( const std::string id, const std::string subdir="" );
00104 
00109   static std::string getContentIdMd5( const std::string id ); 
00110 
00116   static int eraseCache( const std::string id, const std::string subdir="" );
00117 
00124   static int eraseCacheMd5( const std::string id, const std::string subdir="" );
00125 
00126 private:
00127 
00128   CacheManager();
00129 
00130   static CacheManager& _getInstance();
00131 
00132   static void _ensureInitialized();
00133 
00134   // Cache directory
00135   std::string _cacheDir;
00136 };
00137 
00138 #endif