diff options
author | Bill Hoffman <bill.hoffman@kitware.com> | 2001-02-12 19:26:25 (GMT) |
---|---|---|
committer | Bill Hoffman <bill.hoffman@kitware.com> | 2001-02-12 19:26:25 (GMT) |
commit | d195c01a900c24df9b4ff262cd4dbb9fd901592b (patch) | |
tree | 5db9a5c3b4716024f900846ecabf5de8648eec35 /Source/cmCacheManager.h | |
parent | 452a127004220c10354fc986f69b66580ce7de31 (diff) | |
download | CMake-d195c01a900c24df9b4ff262cd4dbb9fd901592b.zip CMake-d195c01a900c24df9b4ff262cd4dbb9fd901592b.tar.gz CMake-d195c01a900c24df9b4ff262cd4dbb9fd901592b.tar.bz2 |
ENH: add cache manager class, move all commands into cmCommands.cxx to speed up compile times, share a .lib with the command line and mfc versions.
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 |