openModeller
Version 1.4.0
|
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