comparison SqliteDBLink.hpp @ 93:308a718812ba

Small refactoring to allow lazy commits.
author Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
date Tue, 22 Oct 2013 11:53:54 +0200
parents f49023c61dac
children 93981e675d67
comparison
equal deleted inserted replaced
92:f49023c61dac 93:308a718812ba
1 #ifndef SQLITEDBLINK_HPP 1 #ifndef SQLITEDBLINK_HPP
2 #define SQLITEDBLINK_HPP 2 #define SQLITEDBLINK_HPP
3 #include "FileDBLink.hpp" 3 #include "FileDBLink.hpp"
4 4
5 #include <QtSql/QSqlDatabase> 5 #include <QtSql/QSqlDatabase>
6 #include <QtCore/QPair>
6 7
7 class SqliteDBLink : public FileDBLink { 8 class SqliteDBLink : public FileDBLink {
8 public: 9 public:
9 SqliteDBLink(const QString& dbpath); 10 SqliteDBLink(const QString& dbpath);
10 ~SqliteDBLink(); 11 ~SqliteDBLink();
24 QStringList toStringList(); 25 QStringList toStringList();
25 const QList<dbinf_ptr_t > values(const QString& prefix = QString() ) const; 26 const QList<dbinf_ptr_t > values(const QString& prefix = QString() ) const;
26 virtual void keepOnlyFromPrefix(const QString& prefix, 27 virtual void keepOnlyFromPrefix(const QString& prefix,
27 const QStringList& files); 28 const QStringList& files);
28 virtual void deleteFileFromDB(const QString& path); 29 virtual void deleteFileFromDB(const QString& path);
30 bool commit();
29 31
30 private: 32 private:
31 void addFile(const DBInfo& info, bool lazy); 33 typedef enum {Add, Update } OperationType;
34 typedef QPair<DBInfo, OperationType> Operation;
35
36 void addFile(const DBInfo& info, bool lazy = false);
32 bool tryAddFile(const DBInfo& info); 37 bool tryAddFile(const DBInfo& info);
33 void updateFile(const DBInfo& dbinfo, bool lazy); 38 void updateFile(const DBInfo& dbinfo, bool lazy = false);
34 39
35 QSqlDatabase db; 40 QSqlDatabase db;
36 static const QString connectionName; 41 static const QString connectionName;
37 42
38 QSqlQuery* preparedSizePrefixQuery; 43 QSqlQuery* preparedSizePrefixQuery;
39 QSqlQuery* preparedSizeQuery; 44 QSqlQuery* preparedSizeQuery;
40 QSqlQuery* preparedTryAddQuery; 45 QSqlQuery* preparedTryAddQuery;
46 QList<Operation> operations;
41 }; 47 };
42 48
43 #endif //MEMORYDBLINK_HPP 49 #endif //MEMORYDBLINK_HPP