File indexing completed on 2024-12-22 04:57:41

0001 /*  This file is part of the KDE project
0002     SPDX-FileCopyrightText: 2010 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.net>
0003     SPDX-FileContributor: Kevin Krammer <krake@kdab.com>
0004 
0005     SPDX-License-Identifier: LGPL-2.0-or-later
0006 */
0007 
0008 #pragma once
0009 
0010 #include "abstractlocalstore.h"
0011 
0012 #include <memory>
0013 
0014 class MixedMaildirStorePrivate;
0015 
0016 class MixedMaildirStore : public Akonadi::FileStore::AbstractLocalStore
0017 {
0018     Q_OBJECT
0019 
0020 public:
0021     MixedMaildirStore();
0022 
0023     ~MixedMaildirStore() override;
0024 
0025 protected:
0026     void setTopLevelCollection(const Akonadi::Collection &collection) override;
0027     void processJob(Akonadi::FileStore::Job *job) override;
0028 
0029     void checkCollectionMove(Akonadi::FileStore::CollectionMoveJob *job, int &errorCode, QString &errorText) const override;
0030 
0031     void checkItemCreate(Akonadi::FileStore::ItemCreateJob *job, int &errorCode, QString &errorText) const override;
0032 
0033     void checkItemModify(Akonadi::FileStore::ItemModifyJob *job, int &errorCode, QString &errorText) const override;
0034 
0035     void checkItemFetch(Akonadi::FileStore::ItemFetchJob *job, int &errorCode, QString &errorText) const override;
0036 
0037 private:
0038     friend class MixedMaildirStorePrivate;
0039     std::unique_ptr<MixedMaildirStorePrivate> const d;
0040 };