From f89940ac0247cb09b1c83a26edd5a92c806f3bf9 Mon Sep 17 00:00:00 2001 From: Glenn Maynard Date: Tue, 30 Dec 2003 02:44:52 +0000 Subject: [PATCH] add cache hash explanation --- stepmania/src/SongCacheIndex.cpp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/stepmania/src/SongCacheIndex.cpp b/stepmania/src/SongCacheIndex.cpp index cc08d17847..a5e93d3f24 100644 --- a/stepmania/src/SongCacheIndex.cpp +++ b/stepmania/src/SongCacheIndex.cpp @@ -6,6 +6,23 @@ #include "RageFileManager.h" #include "song.h" +/* + * A quick explanation of song cache hashes: Each song has two hashes; a hash of the + * song path, and a hash of the song directory. The former is Song::GetCacheFilePath; + * it stays the same if the contents of the directory change. The latter is + * GetHashForDirectory(m_sSongDir), and changes on each modification. + * + * The file hash is used as the cache filename. We don't want to use the directory + * hash: if we do that, then we'll write a new cache file every time the song changes, + * and they'll accumulate or we'll have to be careful to delete them. + * + * The directory hash is stored in here, indexed by the song path, and used to determine + * if a song has changed. + * + * Another advantage of this system is that we can load songs from cache given only their + * path; we don't have to actually look in the directory (to find out the directory hash) + * in order to find the cache file. + */ #define CACHE_DIR "Cache/" SongCacheIndex *SONGINDEX;