1 | /* -*- C++ -*- |
2 | Shared pointer based jobs that are managed by the caller in ThreadWeaver. |
3 | |
4 | SPDX-FileCopyrightText: 2005-2013 Mirko Boehm <mirko@kde.org> |
5 | |
6 | SPDX-License-Identifier: LGPL-2.0-or-later |
7 | */ |
8 | |
9 | #ifndef MANAGEDJOBPOINTER_H |
10 | #define MANAGEDJOBPOINTER_H |
11 | |
12 | #include <QSharedPointer> |
13 | |
14 | #include "jobinterface.h" |
15 | |
16 | namespace ThreadWeaver |
17 | { |
18 | inline void doNotDeleteJob(JobInterface *) |
19 | { |
20 | } |
21 | |
22 | template<typename T> |
23 | class ManagedJobPointer : public QSharedPointer<T> |
24 | { |
25 | public: |
26 | ManagedJobPointer(T *job) |
27 | : QSharedPointer<T>(job, doNotDeleteJob) |
28 | { |
29 | } |
30 | }; |
31 | |
32 | } |
33 | |
34 | #endif // MANAGEDJOBPOINTER_H |
35 | |