File indexing completed on 2025-03-09 04:56:43

0001 /*
0002  * SPDX-FileCopyrightText: 2014 Kevin Ottens <ervin@kde.org>
0003  * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
0004  */
0005 
0006 
0007 #ifndef AKONADI_DATASOURCEREPOSITORY_H
0008 #define AKONADI_DATASOURCEREPOSITORY_H
0009 
0010 #include "domain/datasourcerepository.h"
0011 
0012 #include "akonadi/akonadiserializerinterface.h"
0013 #include "akonadi/akonadistorageinterface.h"
0014 
0015 namespace Akonadi {
0016 
0017 class SerializerInterface;
0018 class StorageInterface;
0019 
0020 class DataSourceRepository : public QObject, public Domain::DataSourceRepository
0021 {
0022     Q_OBJECT
0023 public:
0024     typedef QSharedPointer<DataSourceRepository> Ptr;
0025 
0026     DataSourceRepository(const StorageInterface::Ptr &storage,
0027                          const SerializerInterface::Ptr &serializer);
0028 
0029     KJob *update(Domain::DataSource::Ptr source) override;
0030 
0031     void showConfigDialog() override;
0032     void windowNeedsDataBackend(QWidget *window) override;
0033 
0034 private:
0035     StorageInterface::Ptr m_storage;
0036     SerializerInterface::Ptr m_serializer;
0037 };
0038 
0039 }
0040 
0041 #endif // AKONADI_DATASOURCEREPOSITORY_H