File indexing completed on 2024-04-14 03:49:41
0001 /* 0002 This file is part of the KDE Baloo project. 0003 SPDX-FileCopyrightText: 2015 Vishesh Handa <vhanda@kde.org> 0004 0005 SPDX-License-Identifier: LGPL-2.1-or-later 0006 */ 0007 0008 #ifndef BALOO_DOCUMENTURLDB_H 0009 #define BALOO_DOCUMENTURLDB_H 0010 0011 #include "idtreedb.h" 0012 #include "idfilenamedb.h" 0013 #include "idutils.h" 0014 0015 #include <QDebug> 0016 #include <QFile> 0017 0018 namespace Baloo { 0019 0020 class PostingIterator; 0021 0022 class BALOO_ENGINE_EXPORT DocumentUrlDB 0023 { 0024 public: 0025 explicit DocumentUrlDB(MDB_dbi idTreeDb, MDB_dbi idFileNameDb, MDB_txn* txn); 0026 ~DocumentUrlDB(); 0027 0028 /** 0029 * Returns true if added 0030 */ 0031 bool put(quint64 docId, quint64 parentId, const QByteArray& fileName); 0032 bool addPath(const QByteArray& url); 0033 0034 QByteArray get(quint64 docId) const; 0035 QVector<quint64> getChildren(quint64 docId) const; 0036 bool contains(quint64 docId) const; 0037 0038 /** 0039 * Move the document \p id to directory \p newParentId, set its name 0040 * to \p newName. 0041 */ 0042 void updateUrl(quint64 id, quint64 newParentId, const QByteArray& newName); 0043 0044 void del(quint64 docId); 0045 0046 quint64 getId(quint64 docId, const QByteArray& fileName) const; 0047 0048 PostingIterator* iter(quint64 docId) { 0049 IdTreeDB db(m_idTreeDbi, m_txn); 0050 return db.iter(docId); 0051 } 0052 0053 QMap<quint64, QByteArray> toTestMap() const; 0054 0055 private: 0056 BALOO_ENGINE_NO_EXPORT void add(quint64 id, quint64 parentId, const QByteArray& name); 0057 0058 MDB_txn* m_txn; 0059 MDB_dbi m_idFilenameDbi; 0060 MDB_dbi m_idTreeDbi; 0061 0062 }; 0063 0064 } 0065 0066 #endif // BALOO_DOCUMENTURLDB_H