- initial import of revision 374 from cnc
[apt.git] / tools / cached_md5.h
1 /*
2  * $Id: cached_md5.h,v 1.4 2003/01/29 13:47:31 niemeyer Exp $
3  *
4  * $Log: cached_md5.h,v $
5  * Revision 1.4  2003/01/29 13:47:31  niemeyer
6  * Patch by Dmitry V. Levin <ldv@altlinux.org>
7  *
8  * * tools/cached_md5.h(CachedMD5::CachedMD5):
9  *   Add additional argument (Domain).
10  * * tools/cached_md5.cc(CachedMD5::CachedMD5):
11  *   Use passed argument (Domain) instead of __progname.
12  * * tools/genpkglist.cc(main): Pass additional argument to CachedMD5.
13  * * tools/gensrclist.cc(main): Likewise.
14  *
15  * CachedMD5 constructor uses __progname which is wrong in some cases (e.g.
16  * genbasedir renamed to smth else). I'm guilty of introducing this code in
17  * apt-rpm, so I suggest to fix it.
18  *
19  * Revision 1.3  2002/07/26 23:22:27  niemeyer
20  * Use APT's MD5 implementation.
21  *
22  * Revision 1.2  2002/07/26 17:39:28  niemeyer
23  * Changes for GCC 3.1 and RPM 4.1 support (merged patch from Enrico Scholz).
24  *
25  * Revision 1.1  2002/07/23 17:54:53  niemeyer
26  * Added to CVS.
27  *
28  * Revision 1.1  2001/08/07 20:46:03  kojima
29  * Alexander Bokovoy <a.bokovoy@sam-solutions.net>'s patch for cleaning
30  * up genpkglist
31  *
32  *
33  */
34
35 #ifndef __CACHED_MD5_H__
36 #define __CACHED_MD5_H__
37
38 #include <sys/types.h>
39 #include <string>
40 #include <map>
41
42 using namespace std;
43
44 class CachedMD5
45 {
46    string CacheFileName;
47    struct FileData
48    {
49       string MD5;
50       time_t TimeStamp;
51    };
52    map<string, FileData> MD5Table;
53
54    public:
55
56    void MD5ForFile(string FileName, time_t TimeStamp, char *buf);
57
58    CachedMD5(string DirName, string Domain);
59    ~CachedMD5();
60 };
61
62 #endif  /* __CACHED_MD5_H__ */
63
64 // vim:sts=3:sw=3