File indexing completed on 2024-04-28 04:01:23

0001 /* -*- C++ -*-
0002     Shared pointer based jobs that are managed by the caller in ThreadWeaver.
0003 
0004     SPDX-FileCopyrightText: 2005-2013 Mirko Boehm <mirko@kde.org>
0005 
0006     SPDX-License-Identifier: LGPL-2.0-or-later
0007 */
0008 
0009 #ifndef MANAGEDJOBPOINTER_H
0010 #define MANAGEDJOBPOINTER_H
0011 
0012 #include <QSharedPointer>
0013 
0014 #include "jobinterface.h"
0015 
0016 namespace ThreadWeaver
0017 {
0018 inline void doNotDeleteJob(JobInterface *)
0019 {
0020 }
0021 
0022 template<typename T>
0023 class ManagedJobPointer : public QSharedPointer<T>
0024 {
0025 public:
0026     ManagedJobPointer(T *job)
0027         : QSharedPointer<T>(job, doNotDeleteJob)
0028     {
0029     }
0030 };
0031 
0032 }
0033 
0034 #endif // MANAGEDJOBPOINTER_H