/usr/include/marble/AbstractWorkerThread.h is in libmarble-dev 4:4.13.0-0ubuntu1.
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 | //
// This file is part of the Marble Virtual Globe.
//
// This program is free software licensed under the GNU LGPL. You can
// find a copy of this license in LICENSE.txt in the top directory of
// the source code.
//
// Copyright 2009 Bastian Holst <bastianholst@gmx.de>
//
#ifndef MARBLE_ABSTRACTWORKERTHREAD_H
#define MARBLE_ABSTRACTWORKERTHREAD_H
// Marble
#include "marble_export.h"
// Qt
#include <QThread>
namespace Marble
{
class AbstractWorkerThreadPrivate;
/**
* The AbstractWorkerThread is a class written for small tasks that have to run
* multiple times on different data asynchronously.
* You should be able to use this class for many different tasks, but you'll have to
* think about Multi-Threading additionally.
* The AbstractWorkerThread runs the function work() as long as workAvailable()
* returns true. If there is no work available for a longer time, the thread will
* switch itself off. As a result you have to call ensureRunning() every time you
* want something to be worked on. You'll probably want to call this in your
* addSchedule() function.
*/
class MARBLE_EXPORT AbstractWorkerThread : public QThread
{
Q_OBJECT
public:
explicit AbstractWorkerThread( QObject *parent = 0 );
virtual ~AbstractWorkerThread();
void ensureRunning();
protected:
virtual bool workAvailable() = 0;
virtual void work() = 0;
void run();
private:
AbstractWorkerThreadPrivate * const d;
};
}
#endif
|