digiKam
Loading...
Searching...
No Matches
threadmanager.h
Go to the documentation of this file.
1/* ============================================================
2 *
3 * This file is a part of digiKam project
4 * https://www.digikam.org
5 *
6 * Date : 2010-04-13
7 * Description : Thread object scheduling
8 *
9 * SPDX-FileCopyrightText: 2010-2012 by Marcel Wiesweg <marcel dot wiesweg at gmx dot de>
10 *
11 * SPDX-License-Identifier: GPL-2.0-or-later
12 *
13 * ============================================================ */
14
15#pragma once
16
17// Qt includes
18
19#include <QObject>
20#include <QRunnable>
21
22// Local includes
23
24#include "digikam_export.h"
25
26namespace Digikam
27{
28
29class DynamicThread;
30class WorkerObject;
31
32class DIGIKAM_EXPORT ThreadManager : public QObject
33{
34 Q_OBJECT
35
36public:
37
38 static ThreadManager* instance();
39
40 void initialize(WorkerObject* const object);
41 void initialize(DynamicThread* const dynamicThread);
42
43public Q_SLOTS:
44
45 void schedule(WorkerObject* object);
46 void schedule(QRunnable* runnable);
47
48protected Q_SLOTS:
49
50 void slotDestroyed(QObject* object);
51
52protected:
53
54 explicit ThreadManager();
55 ~ThreadManager() override;
56
57private:
58
59 // Disable
60 explicit ThreadManager(QObject*) = delete;
61 ThreadManager(const ThreadManager&) = delete;
62 ThreadManager& operator=(const ThreadManager&) = delete;
63
64private:
65
66 friend class ThreadManagerCreator;
67
68 class Private;
69 Private* const d = nullptr;
70};
71
72} // namespace Digikam
Definition dynamicthread.h:33
Definition threadmanager.h:33
Definition workerobject.h:35
Definition datefolderview.cpp:34