annotate FileDBLink.hpp @ 108:e9b798e80bad

Setup prepared begin, end queries. Support for more effective delete statement.
author Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
date Tue, 18 Feb 2014 17:08:06 +0100
parents 6bc013d5788b
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
1 #ifndef FILEDBLINK
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
2 #define FILEDBLINK
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
3
9
b5943e4bf676 Fix up header includes.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 5
diff changeset
4 #include <QtCore/QCryptographicHash>
0
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
5 #include <QtCore/QDateTime>
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
6 #include <QtCore/QFileInfo>
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
7
93
308a718812ba Small refactoring to allow lazy commits.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 92
diff changeset
8 class FileDBLink : public QObject {
308a718812ba Small refactoring to allow lazy commits.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 92
diff changeset
9 Q_OBJECT
0
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
10 public:
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
11 class DBInfo {
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
12 public:
86
af7962f3274b Use quint64 for sizes, rather than qint64.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 85
diff changeset
13 DBInfo(const QString& path, quint64 size,
64
b9515dc35fe4 Make sure no file has greater linewidth than 80.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 13
diff changeset
14 const QDateTime& mtime, const QByteArray& hash) : path_(path),
b9515dc35fe4 Make sure no file has greater linewidth than 80.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 13
diff changeset
15 size_(size),
b9515dc35fe4 Make sure no file has greater linewidth than 80.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 13
diff changeset
16 mtime_(mtime),
b9515dc35fe4 Make sure no file has greater linewidth than 80.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 13
diff changeset
17 hash_(hash)
0
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
18 {}
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
19 DBInfo() {}
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
20
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
21 virtual ~DBInfo() {}
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
22
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
23 const QString& path() const
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
24 {
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
25 return path_;
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
26 }
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
27
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
28 QString name() const
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
29 {
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
30 QFileInfo finf(path());
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
31 return finf.fileName();
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
32 }
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
33
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
34 quint64 size() const
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
35 {
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
36 return size_;
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
37 }
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
38
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
39 const QDateTime& mtime() const
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
40 {
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
41 return mtime_;
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
42 }
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
43
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
44 const QByteArray checksum() const
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
45 {
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
46 return hash_;
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
47 }
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
48
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
49 virtual QString serialize() const
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
50 {
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
51 QString size = QString::number(size_);
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
52 QString str = path_;
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
53 str += ", " + size;
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
54 str += ", " + mtime_.toString();
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
55 str += ", " + hash_.toHex();
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
56 return str;
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
57 }
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
58
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
59 private:
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
60 QString path_;
86
af7962f3274b Use quint64 for sizes, rather than qint64.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 85
diff changeset
61 quint64 size_;
0
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
62 QDateTime mtime_;
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
63 QByteArray hash_;
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
64 };
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
65
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
66 class ExtendedDBInfo : public DBInfo {
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
67 public:
64
b9515dc35fe4 Make sure no file has greater linewidth than 80.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 13
diff changeset
68 ExtendedDBInfo(const DBInfo& dbinfo,
b9515dc35fe4 Make sure no file has greater linewidth than 80.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 13
diff changeset
69 const QString& closestEditPath,
b9515dc35fe4 Make sure no file has greater linewidth than 80.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 13
diff changeset
70 int editDistance) :
b9515dc35fe4 Make sure no file has greater linewidth than 80.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 13
diff changeset
71 DBInfo(dbinfo),
b9515dc35fe4 Make sure no file has greater linewidth than 80.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 13
diff changeset
72 closestEditPath_(closestEditPath),
b9515dc35fe4 Make sure no file has greater linewidth than 80.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 13
diff changeset
73 editDistance_(editDistance)
b9515dc35fe4 Make sure no file has greater linewidth than 80.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 13
diff changeset
74 {
b9515dc35fe4 Make sure no file has greater linewidth than 80.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 13
diff changeset
75 }
b9515dc35fe4 Make sure no file has greater linewidth than 80.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 13
diff changeset
76 ExtendedDBInfo()
b9515dc35fe4 Make sure no file has greater linewidth than 80.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 13
diff changeset
77 {
b9515dc35fe4 Make sure no file has greater linewidth than 80.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 13
diff changeset
78 }
0
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
79
64
b9515dc35fe4 Make sure no file has greater linewidth than 80.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 13
diff changeset
80 virtual ~ExtendedDBInfo()
b9515dc35fe4 Make sure no file has greater linewidth than 80.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 13
diff changeset
81 {
b9515dc35fe4 Make sure no file has greater linewidth than 80.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 13
diff changeset
82 }
0
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
83
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
84 virtual QString serialize() const
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
85 {
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
86 QString dist = QString::number(editDistance_);
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
87 QString str = DBInfo::serialize();
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
88 str += ", " + closestEditPath_;
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
89 str += ", " + dist;
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
90 return str;
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
91 }
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
92
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
93 int editDistance() const
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
94 {
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
95 return editDistance_;
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
96 }
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
97
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
98 private:
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
99 QString closestEditPath_;
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
100 int editDistance_;
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
101 };
64
b9515dc35fe4 Make sure no file has greater linewidth than 80.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 13
diff changeset
102 typedef QSharedPointer<DBInfo> dbinf_ptr_t;
0
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
103
64
b9515dc35fe4 Make sure no file has greater linewidth than 80.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 13
diff changeset
104 static dbinf_ptr_t
b9515dc35fe4 Make sure no file has greater linewidth than 80.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 13
diff changeset
105 computedValue(const dbinf_ptr_t& info,
b9515dc35fe4 Make sure no file has greater linewidth than 80.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 13
diff changeset
106 const QList<dbinf_ptr_t >&);
0
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
107
64
b9515dc35fe4 Make sure no file has greater linewidth than 80.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 13
diff changeset
108 static QByteArray
b9515dc35fe4 Make sure no file has greater linewidth than 80.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 13
diff changeset
109 computeHash(const QString& path,
b9515dc35fe4 Make sure no file has greater linewidth than 80.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 13
diff changeset
110 QCryptographicHash::Algorithm = QCryptographicHash::Sha1);
0
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
111
93
308a718812ba Small refactoring to allow lazy commits.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 92
diff changeset
112 signals:
308a718812ba Small refactoring to allow lazy commits.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 92
diff changeset
113 void progressUpdate(int, int);
308a718812ba Small refactoring to allow lazy commits.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 92
diff changeset
114
0
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
115 public:
2
2833b7f8884a Sql backend is working.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 1
diff changeset
116 enum DBStatus { NONE = 0, MTIME_DIFFERENT, SAME};
2833b7f8884a Sql backend is working.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 1
diff changeset
117
92
f49023c61dac Support for bulk insertion.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 86
diff changeset
118 virtual ~FileDBLink();
0
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
119
85
1f9e27a0bd7f Allow for lazy calculation of checksums, ignore them, if only one file of given size.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 64
diff changeset
120 void updateIfModified(const QString& path, bool lazy = false);
2
2833b7f8884a Sql backend is working.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 1
diff changeset
121
86
af7962f3274b Use quint64 for sizes, rather than qint64.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 85
diff changeset
122 virtual void addFile(const QString& path, quint64 size,
92
f49023c61dac Support for bulk insertion.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 86
diff changeset
123 const QDateTime& dtime, const QByteArray& hash,
f49023c61dac Support for bulk insertion.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 86
diff changeset
124 bool lazy) = 0;
64
b9515dc35fe4 Make sure no file has greater linewidth than 80.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 13
diff changeset
125 virtual void keepOnlyFromPrefix(const QString& prefix,
101
6c6f3a5f96ea Better support for batch operations.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 96
diff changeset
126 const QStringList& files,
6c6f3a5f96ea Better support for batch operations.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 96
diff changeset
127 bool lazy = false) = 0;
6c6f3a5f96ea Better support for batch operations.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 96
diff changeset
128 virtual void deleteFileFromDB(const QString& path, bool lazy = false) = 0;
5
5e4985407feb Add commandline tool updateDeDupe.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 2
diff changeset
129
86
af7962f3274b Use quint64 for sizes, rather than qint64.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 85
diff changeset
130 virtual const QList<dbinf_ptr_t> filesWithSize(quint64 size, const QString& prefix = QString()) const;
85
1f9e27a0bd7f Allow for lazy calculation of checksums, ignore them, if only one file of given size.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 64
diff changeset
131
86
af7962f3274b Use quint64 for sizes, rather than qint64.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 85
diff changeset
132 bool updateAllWithSize(quint64 size);
85
1f9e27a0bd7f Allow for lazy calculation of checksums, ignore them, if only one file of given size.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 64
diff changeset
133
1f9e27a0bd7f Allow for lazy calculation of checksums, ignore them, if only one file of given size.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 64
diff changeset
134 virtual dbinf_ptr_t value(const QString& path) const;
1f9e27a0bd7f Allow for lazy calculation of checksums, ignore them, if only one file of given size.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 64
diff changeset
135
86
af7962f3274b Use quint64 for sizes, rather than qint64.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 85
diff changeset
136 void addFile(const QString& path, quint64 size, const QDateTime& dtime, bool lazy = false);
85
1f9e27a0bd7f Allow for lazy calculation of checksums, ignore them, if only one file of given size.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 64
diff changeset
137 void addFile(const QFileInfo& fileinfo, bool lazy = false);
2
2833b7f8884a Sql backend is working.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 1
diff changeset
138
86
af7962f3274b Use quint64 for sizes, rather than qint64.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 85
diff changeset
139 virtual void updateFile(const QString& path, quint64 size,
92
f49023c61dac Support for bulk insertion.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 86
diff changeset
140 const QDateTime& dtime, const QByteArray& hash,
f49023c61dac Support for bulk insertion.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 86
diff changeset
141 bool lazy = false) = 0;
86
af7962f3274b Use quint64 for sizes, rather than qint64.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 85
diff changeset
142 void updateFile(const QString& path, quint64 size, const QDateTime& dtime, bool lazy = false);
85
1f9e27a0bd7f Allow for lazy calculation of checksums, ignore them, if only one file of given size.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 64
diff changeset
143 void updateFile(const QFileInfo& fileinfo, bool lazy = false);
2
2833b7f8884a Sql backend is working.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 1
diff changeset
144
0
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
145 virtual bool exists(const QString& path) = 0;
64
b9515dc35fe4 Make sure no file has greater linewidth than 80.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 13
diff changeset
146 virtual DBStatus existsWithMtime(const QString& path,
b9515dc35fe4 Make sure no file has greater linewidth than 80.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 13
diff changeset
147 const QDateTime& mtime) = 0;
2
2833b7f8884a Sql backend is working.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 1
diff changeset
148
104
6bc013d5788b Avoid unnecessary updates.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 101
diff changeset
149 virtual bool commit(const QString& prefix = QString(), bool dirty = true);
64
b9515dc35fe4 Make sure no file has greater linewidth than 80.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 13
diff changeset
150 virtual const QList<dbinf_ptr_t>
b9515dc35fe4 Make sure no file has greater linewidth than 80.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 13
diff changeset
151 values(const QString& prefix = QString() ) const = 0;
b9515dc35fe4 Make sure no file has greater linewidth than 80.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 13
diff changeset
152
b9515dc35fe4 Make sure no file has greater linewidth than 80.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 13
diff changeset
153 virtual const QList<dbinf_ptr_t>
b9515dc35fe4 Make sure no file has greater linewidth than 80.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 13
diff changeset
154 computedValues(const QString& prefix = QString() ) const;
0
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
155
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
156 enum SORTORDER { PATH, SIZE, MTIME, CHECKSUM, EDIT };
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
157
64
b9515dc35fe4 Make sure no file has greater linewidth than 80.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 13
diff changeset
158 virtual const QList<dbinf_ptr_t>
b9515dc35fe4 Make sure no file has greater linewidth than 80.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 13
diff changeset
159 sortOn(const QString& prefix, SORTORDER order, bool extended = false);
0
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
160 };
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
161
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
162 #endif //FILEDBLINK