/usr/include/codeblocks/cbthreadedtask.h is in codeblocks-dev 10.05-2.1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 | /*
* This file is part of the Code::Blocks IDE and licensed under the GNU Lesser General Public License, version 3
* http://www.gnu.org/licenses/lgpl-3.0.html
*/
#ifndef CBTHREADEDTASK_H
#define CBTHREADEDTASK_H
/// This is what you have to use instead of wxThread to add tasks to the Thread Pool.
/// It has a reduced, but similar, interface like that of wxThread.
/// Just be sure to override Execute (like wxThread's Entry) and test every now and then
/// for TestDestroy.
class cbThreadedTask
{
public:
/// cbThreadedTask ctor
cbThreadedTask();
/// cbThreadedTask dtor
virtual ~cbThreadedTask() = 0;
/// This function is called to tell the task to abort (check cbThreadPool::AbortAllTasks)
void Abort();
/// Override this function with the task's job
/// Return value doesn't matter
virtual int Execute() = 0;
protected:
/// Be sure to call this function often. If it returns true, quit your task quickly
bool TestDestroy() const;
/// Same as TestDestroy()
bool Aborted() const;
private:
bool m_abort;
};
/* ************************************************ */
/* **************** INLINE MEMBERS **************** */
/* ************************************************ */
inline cbThreadedTask::cbThreadedTask()
: m_abort(false)
{
// empty
}
inline cbThreadedTask::~cbThreadedTask()
{
// empty
}
inline bool cbThreadedTask::TestDestroy() const
{
return m_abort;
}
inline bool cbThreadedTask::Aborted() const
{
return m_abort;
}
inline void cbThreadedTask::Abort()
{
m_abort = true;
}
#endif
|