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: