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