/usr/include/Gem/Gem/SynchedWorkerThread.h is in gem-dev 1:0.93.3-13.
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 | /*-----------------------------------------------------------------
LOG
GEM - Graphics Environment for Multimedia
Synchedworkerthread.h
- part of GEM
- a worker thread that automatically dequeues in the main thread
Copyright (c) 2011-2011 IOhannes m zmölnig. forum::für::umläute. IEM. zmoelnig@iem.at
For information on usage and redistribution, and for a DISCLAIMER OF ALL
WARRANTIES, see the file, "GEM.LICENSE.TERMS" in this distribution.
-----------------------------------------------------------------*/
#ifndef _INCLUDE__GEM_GEM_SYNCHEDWORKERTHREAD_H_
#define _INCLUDE__GEM_GEM_SYNCHEDWORKERTHREAD_H_
#include "Gem/WorkerThread.h"
namespace gem { namespace thread {
GEM_EXTERN class SynchedWorkerThread : public WorkerThread {
private:
class PIMPL;
PIMPL*m_pimpl;
friend class PIMPL;
/* dummy implementations */
SynchedWorkerThread(const SynchedWorkerThread&);
SynchedWorkerThread&operator=(const SynchedWorkerThread&);
public:
SynchedWorkerThread(bool autostart=true);
virtual ~SynchedWorkerThread(void);
/*
* turn on "polling" mode
* when in polling mode, the calling thread has to call 'dequeue()' in order to
* deqeue any DONE data
* when in pushing mode, the data is pushed automatically within the RTE main thread
*
* returns TRUE is now in polling mode, or FALSE if now in pushing mode
* (might be different from what was requested)
*
* this MUST be called from the main thread
*/
virtual bool setPolling(bool value=true);
/**
* deqeues the entire DONE queue
* returns the number of elements dequeued
*/
virtual unsigned int dequeue(void);
protected:
// this get's called from the main thread(!) with each
// finished data chunk
virtual void done(id_t ID, void*data) = 0;
//////
// tell RTE to call back asap
virtual void signal(void);
};};};
#endif /* _INCLUDE__GEM_GEM_SYNCHEDWORKERTHREAD_H_ */
|