File indexing completed on 2024-04-28 04:01:23
0001 /* -*- C++ -*- 0002 Wrap functors in jobs 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 LAMBDA_H 0010 #define LAMBDA_H 0011 0012 #include "job.h" 0013 #include "threadweaver_export.h" 0014 0015 namespace ThreadWeaver 0016 { 0017 /** @brief Lambda is a template that takes any type on which operator() is available, and executes it in run(). */ 0018 template<typename T> 0019 class Lambda : public Job 0020 { 0021 public: 0022 explicit Lambda(T t_) 0023 : t(t_) 0024 { 0025 } 0026 0027 protected: 0028 void run(JobPointer, Thread *) override 0029 { 0030 t(); 0031 } 0032 0033 private: 0034 T t; 0035 }; 0036 0037 } 0038 0039 #endif // LAMBDA_H