File indexing completed on 2024-04-28 15:39:58
0001 /* SPDX-FileCopyrightText: 2003-2010 Jesper K. Pedersen <blackie@kde.org> 0002 0003 SPDX-License-Identifier: GPL-2.0-or-later 0004 */ 0005 0006 #ifndef MD5MAP_H 0007 #define MD5MAP_H 0008 #include "MD5.h" 0009 0010 #include <kpabase/FileName.h> 0011 0012 #include <QHash> 0013 #include <QString> 0014 0015 namespace DB 0016 { 0017 typedef QHash<MD5, DB::FileName> MD5FileMap; 0018 typedef QHash<DB::FileName, MD5> FileMD5Map; 0019 0020 /** 0021 This class may be overridden by a which wants to store md5 information 0022 directly in a database, rather than in a map in memory. 0023 **/ 0024 class MD5Map 0025 { 0026 public: 0027 virtual ~MD5Map() { } 0028 virtual void insert(const MD5 &md5sum, const DB::FileName &fileName); 0029 virtual DB::FileName lookup(const MD5 &md5sum) const; 0030 virtual MD5 lookupFile(const DB::FileName &fileName) const; 0031 virtual bool contains(const MD5 &md5sum) const; 0032 virtual bool containsFile(const DB::FileName &fileName) const; 0033 virtual void clear(); 0034 virtual DB::FileNameSet diff(const MD5Map &other) const; 0035 0036 private: 0037 MD5FileMap m_map; 0038 FileMD5Map m_i_map; 0039 }; 0040 0041 } 0042 0043 #endif /* MD5MAP_H */ 0044 0045 // vi:expandtab:tabstop=4 shiftwidth=4: