1 /* 2 SPDX-FileCopyrightText: 2011 Tobias Koenig <tokoe@kde.org> 3 SPDX-FileCopyrightText: 2011 Stephen Kelly <steveire@gmail.com> 4 5 SPDX-License-Identifier: LGPL-2.0-or-later 6 */ 7 8 #pragma once 9 10 #include <QList> 11 #include <QObject> 12 13 namespace Akonadi 14 { 15 class Job; 16 class JobPrivate; 17 18 class Collection; 19 class Item; 20 class Tag; 21 22 class ChangeMediator : public QObject 23 { 24 Q_OBJECT 25 public: 26 static ChangeMediator *instance(); 27 28 static void registerMonitor(QObject *monitor); 29 static void unregisterMonitor(QObject *monitor); 30 31 static void invalidateCollection(const Akonadi::Collection &collection); 32 static void invalidateItem(const Akonadi::Item &item); 33 static void invalidateTag(const Akonadi::Tag &tag); 34 35 protected: 36 explicit ChangeMediator(QObject *parent = nullptr); 37 Q_DISABLE_COPY_MOVE(ChangeMediator) 38 39 QList<QObject *> m_monitors; 40 }; 41 42 } 43 44