File indexing completed on 2024-05-12 05:11:15

0001 /*
0002  * SPDX-FileCopyrightText: 2013 Vishesh Handa <me@vhanda.in>
0003  *
0004  * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
0005  *
0006  */
0007 
0008 #pragma once
0009 
0010 #include "abstractindexer.h"
0011 #include "xapiandatabase.h"
0012 
0013 class ContactIndexer : public AbstractIndexer
0014 {
0015 public:
0016     explicit ContactIndexer(const QString &path);
0017     ~ContactIndexer() override;
0018 
0019     [[nodiscard]] QStringList mimeTypes() const override;
0020 
0021     void index(const Akonadi::Item &item) override;
0022     void remove(const Akonadi::Item &item) override;
0023     void remove(const Akonadi::Collection &item) override;
0024 
0025     void commit() override;
0026 
0027     void move(Akonadi::Item::Id itemId, Akonadi::Collection::Id from, Akonadi::Collection::Id to) override;
0028 
0029 private:
0030     [[nodiscard]] bool indexContact(const Akonadi::Item &item);
0031     void indexContactGroup(const Akonadi::Item &item);
0032 
0033     Akonadi::Search::XapianDatabase *m_db = nullptr;
0034 };