1 | /* |
2 | This file is part of the KDE Baloo project. |
3 | SPDX-FileCopyrightText: 2015 Vishesh Handa <vhanda@kde.org> |
4 | |
5 | SPDX-License-Identifier: LGPL-2.1-or-later |
6 | */ |
7 | |
8 | #ifndef BALOO_POSITIONDB_H |
9 | #define BALOO_POSITIONDB_H |
10 | |
11 | #include "engine_export.h" |
12 | |
13 | #include <QByteArray> |
14 | #include <QMap> |
15 | #include <QVector> |
16 | #include <lmdb.h> |
17 | |
18 | namespace Baloo { |
19 | |
20 | class PositionInfo; |
21 | class VectorPositionInfoIterator; |
22 | |
23 | class BALOO_ENGINE_EXPORT PositionDB |
24 | { |
25 | public: |
26 | explicit PositionDB(MDB_dbi dbi, MDB_txn* txn); |
27 | ~PositionDB(); |
28 | |
29 | static MDB_dbi create(MDB_txn* txn); |
30 | static MDB_dbi open(MDB_txn* txn); |
31 | |
32 | void put(const QByteArray& term, const QVector<PositionInfo>& list); |
33 | QVector<PositionInfo> get(const QByteArray& term); |
34 | void del(const QByteArray& term); |
35 | |
36 | VectorPositionInfoIterator* iter(const QByteArray& term); |
37 | |
38 | QMap<QByteArray, QVector<PositionInfo>> toTestMap() const; |
39 | private: |
40 | MDB_txn* m_txn; |
41 | MDB_dbi m_dbi; |
42 | }; |
43 | |
44 | } |
45 | |
46 | #endif // BALOO_POSITIONDB_H |
47 | |