OSDN Git Service

Git Log Cache Basic working
[tortoisegit/TortoiseGitJp.git] / src / TortoiseProc / gitlogcache.h
index a0d9ecc..901a880 100644 (file)
@@ -20,7 +20,7 @@ struct SLogCacheIndexHeader
 struct SLogCacheItem\r
 {\r
        BYTE  m_Hash[40];\r
-       DWORD m_Offset;\r
+       ULONGLONG m_Offset;\r
 };\r
 \r
 struct SLogCacheRevFileHeader\r
@@ -47,43 +47,53 @@ protected:
        CFile m_DataFile;\r
        CFile m_LockFile;\r
 \r
+       BOOL CheckHeader(SLogCacheIndexHeader &header)\r
+       {\r
+               if(header.m_Magic != LOG_INDEX_MAGIC)\r
+                       return FALSE;\r
+\r
+               if(header.m_Version != LOG_INDEX_VERSION)\r
+                       return FALSE;\r
+\r
+               return TRUE;\r
+       }\r
+\r
        BOOL CheckHeader(SLogCacheRevFileHeader &header)\r
        {\r
-               if(header.m_Magic == LOG_DATA_MAGIC)\r
-                       return TRUE;\r
-               else\r
+               if(header.m_Magic != LOG_DATA_MAGIC)\r
                        return FALSE;\r
 \r
-               if(header.m_Version == LOG_INDEX_VERSION)\r
-                       return TRUE;\r
-               else\r
+               if(header.m_Version != LOG_INDEX_VERSION)\r
                        return FALSE;\r
+\r
+               return TRUE;\r
        }\r
 \r
        BOOL CheckHeader(SLogCacheRevItemHeader &header)\r
        {\r
-               if(header.m_Magic == LOG_DATA_ITEM_MAGIC)\r
-                       return TRUE;\r
-               else\r
+               if(header.m_Magic != LOG_DATA_ITEM_MAGIC)\r
                        return FALSE;\r
 \r
-               if(header.m_Version == LOG_INDEX_VERSION)\r
-                       return TRUE;\r
-               else\r
+               if(header.m_Version != LOG_INDEX_VERSION)\r
                        return FALSE;\r
-\r
+               \r
+               return TRUE;\r
        }\r
 \r
-       int SaveOneItem(CString &GitDir,GitRev &Rev,UINT offset);\r
-       int LoadOneItem(CString &GitDir,GitRev &Rev,UINT offset);\r
+       int SaveOneItem(GitRev &Rev,ULONGLONG offset);\r
+       int LoadOneItem(GitRev &Rev,ULONGLONG offset);\r
+       CString m_GitDir;\r
+       int RebuildCacheFile();\r
 \r
 public:\r
        CLogCache();\r
        ~CLogCache();\r
-       int FetchCache(CString GitDir);\r
+       int FetchCacheIndex(CString GitDir);\r
        std::vector<GitRev> m_NewCacheEntry;\r
-       std::map<CString, DWORD> m_HashMapIndex;\r
+       std::map<CString, ULONGLONG> m_HashMapIndex;\r
        int GetCacheData(GitRev &Rev);\r
        int AddCacheEntry(GitRev &Rev);\r
+       int SaveCache();\r
+\r
 \r
 };
\ No newline at end of file