MythTV
master
|
A generator worker thread. More...
#include <libmythmetadata/imagethumbs.h>
Public Member Functions | |
ThumbThread (const QString &name, DBFS *const dbfs) | |
Constructor. More... | |
~ThumbThread () override | |
Destructor. More... | |
void | cancel () |
Clears all queues so that the thread will terminate. More... | |
void | Enqueue (const TaskPtr &task) |
Queues a Create request. More... | |
void | AbortDevice (int devId, const QString &action) |
Clears thumbnail request queue. More... | |
void | PauseBackground (bool pause) |
Pauses or restarts processing of background tasks (scanner requests) More... | |
Public Member Functions inherited from MThread | |
MThread (const QString &objectName) | |
Standard constructor. More... | |
MThread (const QString &objectName, QRunnable *runnable) | |
Use this constructor if you want the default run() method to run the QRunnable's run() method instead of entering the Qt event loop. More... | |
virtual | ~MThread () |
MThread (const MThread &)=delete | |
MThread & | operator= (const MThread &)=delete |
void | RunProlog (void) |
Sets up a thread, call this if you reimplement run(). More... | |
void | RunEpilog (void) |
Cleans up a thread's resources, call this if you reimplement run(). More... | |
QThread * | qthread (void) |
Returns the thread, this will always return the same pointer no matter how often you restart the thread. More... | |
void | setObjectName (const QString &name) |
QString | objectName (void) const |
void | setPriority (QThread::Priority priority) |
QThread::Priority | priority (void) const |
bool | isFinished (void) const |
bool | isRunning (void) const |
void | setStackSize (uint stackSize) |
uint | stackSize (void) const |
void | exit (int retcode=0) |
Use this to exit from the thread if you are using a Qt event loop. More... | |
void | start (QThread::Priority p=QThread::InheritPriority) |
Tell MThread to start running the thread in the near future. More... | |
void | terminate (void) |
Kill a thread unsafely. More... | |
void | quit (void) |
calls exit(0) More... | |
bool | wait (std::chrono::milliseconds time=std::chrono::milliseconds::max()) |
Wait for the MThread to exit, with a maximum timeout. More... | |
Protected Member Functions | |
void | run () override |
Handles thumbnail requests by priority. More... | |
Protected Member Functions inherited from MThread | |
int | exec (void) |
Enters the qt event loop. call exit or quit to exit thread. More... | |
Private Types | |
using | ThumbQueue = QMultiMap< int, TaskPtr > |
A priority queue where 0 is highest priority. More... | |
Private Member Functions | |
QString | CreateThumbnail (const ImagePtrK &im, int thumbPriority) |
Generate thumbnail for an image. More... | |
Static Private Member Functions | |
static void | RemoveTasks (ThumbQueue &queue, int devId) |
Private Attributes | |
DBFS & | m_dbfs |
Database/filesystem adapter. More... | |
QWaitCondition | m_taskDone |
ThumbQueue | m_requestQ |
Synchronises completed tasks. More... | |
ThumbQueue | m_backgroundQ |
Priority queue of background tasks. More... | |
bool | m_doBackground {true} |
Whether to process background tasks. More... | |
QMutex | m_mutex |
Queue protection. More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from MThread | |
static void | ThreadSetup (const QString &name) |
This is to be called on startup in those few threads that haven't been ported to MThread. More... | |
static void | ThreadCleanup (void) |
This is to be called on exit in those few threads that haven't been ported to MThread. More... | |
static void | Cleanup (void) |
This will print out all the running threads, call exit(1) on each and then wait up to 5 seconds total for all the threads to exit. More... | |
static void | GetAllThreadNames (QStringList &list) |
static void | GetAllRunningThreadNames (QStringList &list) |
Static Protected Member Functions inherited from MThread | |
static void | setTerminationEnabled (bool enabled=true) |
static void | usleep (std::chrono::microseconds time) |
template<typename R , typename P > | |
static std::enable_if_t< std::chrono::treat_as_floating_point< R >::value, void > | usleep (std::chrono::duration< R, P > time) |
Protected Attributes inherited from MThread | |
MThreadInternal * | m_thread {nullptr} |
QRunnable * | m_runnable {nullptr} |
bool | m_prologExecuted {true} |
bool | m_epilogExecuted {true} |
A generator worker thread.
Definition at line 87 of file imagethumbs.h.
|
private |
A priority queue where 0 is highest priority.
Definition at line 111 of file imagethumbs.h.
|
inline |
Constructor.
name | Thread name |
dbfs | Filesystem/Database adapter |
Definition at line 95 of file imagethumbs.h.
|
override |
Destructor.
Definition at line 18 of file imagethumbs.cpp.
void ThumbThread< DBFS >::cancel |
Clears all queues so that the thread will terminate.
Definition at line 29 of file imagethumbs.cpp.
void ThumbThread< DBFS >::Enqueue | ( | const TaskPtr & | task | ) |
void ThumbThread< DBFS >::AbortDevice | ( | int | devId, |
const QString & | action | ||
) |
Clears thumbnail request queue.
Definition at line 67 of file imagethumbs.cpp.
void ThumbThread< DBFS >::PauseBackground | ( | bool | pause | ) |
Pauses or restarts processing of background tasks (scanner requests)
Definition at line 325 of file imagethumbs.cpp.
|
overrideprotectedvirtual |
Handles thumbnail requests by priority.
Repeatedly processes next request from highest priority queue until all queues are empty, then quits. For Create requests an event is broadcast once the thumbnail exists. Dirs are only deleted if empty
Reimplemented from MThread.
Definition at line 123 of file imagethumbs.cpp.
|
private |
Generate thumbnail for an image.
im | Image |
thumbPriority |
Definition at line 240 of file imagethumbs.cpp.
|
staticprivate |
/brief Removes all tasks for a device from a task queue
Definition at line 101 of file imagethumbs.cpp.
|
private |
Database/filesystem adapter.
Definition at line 116 of file imagethumbs.h.
|
private |
Definition at line 117 of file imagethumbs.h.
|
private |
Synchronises completed tasks.
Priority queue of requests
Definition at line 119 of file imagethumbs.h.
|
private |
Priority queue of background tasks.
Definition at line 120 of file imagethumbs.h.
|
private |
Whether to process background tasks.
Definition at line 121 of file imagethumbs.h.
|
private |
Queue protection.
Definition at line 122 of file imagethumbs.h.