diff options
Diffstat (limited to 'Source/cmCacheManager.h')
-rw-r--r-- | Source/cmCacheManager.h | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/Source/cmCacheManager.h b/Source/cmCacheManager.h new file mode 100644 index 0000000..580f40f --- /dev/null +++ b/Source/cmCacheManager.h @@ -0,0 +1,72 @@ +/*========================================================================= + + Program: Insight Segmentation & Registration Toolkit + Module: $RCSfile$ + Language: C++ + Date: $Date$ + Version: $Revision$ + + + Copyright (c) 2000 National Library of Medicine + All rights reserved. + + See COPYRIGHT.txt for copyright details. + +=========================================================================*/ +#ifndef cmCacheManager_h +#define cmCacheManager_h + +#include "cmStandardIncludes.h" + +/** \class cmCacheManager + * \brief Control class for cmake's cache + * + * Load and Save CMake cache files. + * + */ +class cmCacheManager +{ +public: + /** + * Types for the cache entries. These are useful as + * hints for a cache editor program. Path should bring + * up a file chooser, BOOL a check box, and STRING a + * text entry box. + */ + enum CacheEntryType{ BOOL=0, PATH, STRING }; + static CacheEntryType StringToType(const char*); + /** + * Singleton pattern get instance of the cmCacheManager. + */ + static cmCacheManager* GetInstance(); + /** + * Load a cache from file + */ + bool LoadCache(const char* path); + + /** + * Save the cache to a file + */ + bool SaveCache(const char* path); + + /** + * Add an entry into the cache + */ + void AddCacheEntry(const char* key, const char* value, CacheEntryType type); + + /** + * Get a value from the cache given a key + */ + const char* GetCacheValue(const char* key); +private: + static cmCacheManager* s_Instance; + class CacheEntry + { + public: + std::string m_Value; + CacheEntryType m_Type; + }; + std::map<std::string, CacheEntry> m_Cache; +}; + +#endif |