File indexing completed on 2024-06-23 05:06:46

0001 /*
0002     SPDX-FileCopyrightText: 2011 Tobias Koenig <tokoe@kde.org>
0003     SPDX-FileCopyrightText: 2011 Stephen Kelly <steveire@gmail.com>
0004 
0005     SPDX-License-Identifier: LGPL-2.0-or-later
0006 */
0007 
0008 #pragma once
0009 
0010 #include <QList>
0011 #include <QObject>
0012 
0013 namespace Akonadi
0014 {
0015 class Job;
0016 class JobPrivate;
0017 
0018 class Collection;
0019 class Item;
0020 class Tag;
0021 
0022 class ChangeMediator : public QObject
0023 {
0024     Q_OBJECT
0025 public:
0026     static ChangeMediator *instance();
0027 
0028     static void registerMonitor(QObject *monitor);
0029     static void unregisterMonitor(QObject *monitor);
0030 
0031     static void invalidateCollection(const Akonadi::Collection &collection);
0032     static void invalidateItem(const Akonadi::Item &item);
0033     static void invalidateTag(const Akonadi::Tag &tag);
0034 
0035 protected:
0036     explicit ChangeMediator(QObject *parent = nullptr);
0037     Q_DISABLE_COPY_MOVE(ChangeMediator)
0038 
0039     QList<QObject *> m_monitors;
0040 };
0041 
0042 }