diff options
author | Johannes Schickel | 2016-02-25 18:33:33 +0100 |
---|---|---|
committer | Johannes Schickel | 2016-02-25 22:15:45 +0100 |
commit | d6d63a16e2c34d3697a26aff97aadf76f1ab4c68 (patch) | |
tree | 00067c1f23bc6448722677ca95584f5e052321a6 /backends/saves/default/default-saves.h | |
parent | 8c5931bca4b85c8779bf69aeb04bad5ed4191b79 (diff) | |
download | scummvm-rg350-d6d63a16e2c34d3697a26aff97aadf76f1ab4c68.tar.gz scummvm-rg350-d6d63a16e2c34d3697a26aff97aadf76f1ab4c68.tar.bz2 scummvm-rg350-d6d63a16e2c34d3697a26aff97aadf76f1ab4c68.zip |
BACKENDS: Make DefaultSaveFileManager case insensitive.
For this we introduce a file cache inside DefaultSaveFileManager similar to
what we use inside FSDirectory. However, we only do small updates for newly
created saves (via openForSaving) or for removed saves (via removeSavefile).
Re-caching is done whenever the savepath changes.
Tizen changes have not been tested.
Diffstat (limited to 'backends/saves/default/default-saves.h')
-rw-r--r-- | backends/saves/default/default-saves.h | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/backends/saves/default/default-saves.h b/backends/saves/default/default-saves.h index 81f45f96b8..bf4ca0229d 100644 --- a/backends/saves/default/default-saves.h +++ b/backends/saves/default/default-saves.h @@ -27,6 +27,7 @@ #include "common/savefile.h" #include "common/str.h" #include "common/fs.h" +#include "common/hashmap.h" /** * Provides a default savefile manager implementation for common platforms. @@ -54,6 +55,30 @@ protected: * Sets the internal error and error message accordingly. */ virtual void checkPath(const Common::FSNode &dir); + + /** + * Assure that the given save path is cached. + * + * @param savePathName String representation of save path to cache. + */ + void assureCached(const Common::String &savePathName); + + typedef Common::HashMap<Common::String, Common::FSNode, Common::IgnoreCase_Hash, Common::IgnoreCase_EqualTo> SaveFileCache; + + /** + * Cache of all the save files in the currently cached directory. + * + * Modify with caution because we only re-cache when the save path changed! + * This needs to be updated inside at least openForSaving and + * removeSavefile. + */ + SaveFileCache _saveFileCache; + +private: + /** + * The currently cached directory. + */ + Common::String _cachedDirectory; }; #endif |