MythTV  master
Classes | Public Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
VideoScannerThread Class Reference

#include <videoscan.h>

Inheritance diagram for VideoScannerThread:
Inheritance graph
[legend]
Collaboration diagram for VideoScannerThread:
Collaboration graph
[legend]

Classes

struct  CheckStruct
 

Public Member Functions

 VideoScannerThread (QObject *parent)
 
 ~VideoScannerThread () override
 
void run () override
 Runs the Qt event loop unless we have a QRunnable, in which case we run the runnable run instead. More...
 
void SetDirs (QStringList dirs)
 
void SetHosts (const QStringList &hosts)
 
void SetProgressDialog (MythUIProgressDialog *dialog)
 
QStringList GetOfflineSGHosts (void)
 
bool getDataChanged () const
 
void ResetCounts ()
 
- 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
 
MThreadoperator= (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...
 

Private Types

using PurgeList = std::vector< std::pair< int, QString > >
 
using FileCheckList = std::map< QString, CheckStruct >
 

Private Member Functions

 Q_DECLARE_TR_FUNCTIONS (VideoScannerThread)
 
void removeOrphans (unsigned int id, const QString &filename)
 
void verifyFiles (FileCheckList &files, PurgeList &remove)
 
bool updateDB (const FileCheckList &add, const PurgeList &remove)
 
bool buildFileList (const QString &directory, const QStringList &imageExtensions, FileCheckList &filelist) const
 
void SendProgressEvent (uint progress, uint total=0, QString messsage=QString())
 

Private Attributes

QObject * m_parent {nullptr}
 
bool m_listUnknown {false}
 
bool m_removeAll {false}
 
bool m_keepAll {false}
 
bool m_hasGUI {false}
 
QStringList m_directories
 
QStringList m_liveSGHosts
 
QStringList m_offlineSGHosts
 
VideoMetadataListManagerm_dbMetadata {nullptr}
 
MythUIProgressDialogm_dialog {nullptr}
 
QList< int > m_addList
 
QList< int > m_movList
 
QList< int > m_delList
 
bool m_dbDataChanged {false}
 

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)
 
- Protected Member Functions inherited from MThread
int exec (void)
 Enters the qt event loop. call exit or quit to exit thread. More...
 
- 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
MThreadInternalm_thread {nullptr}
 
QRunnable * m_runnable {nullptr}
 
bool m_prologExecuted {true}
 
bool m_epilogExecuted {true}
 

Detailed Description

Definition at line 60 of file videoscan.h.

Member Typedef Documentation

◆ PurgeList

using VideoScannerThread::PurgeList = std::vector<std::pair<int, QString> >
private

Definition at line 85 of file videoscan.h.

◆ FileCheckList

using VideoScannerThread::FileCheckList = std::map<QString, CheckStruct>
private

Definition at line 86 of file videoscan.h.

Constructor & Destructor Documentation

◆ VideoScannerThread()

VideoScannerThread::VideoScannerThread ( QObject *  parent)
explicit

Definition at line 77 of file videoscan.cpp.

◆ ~VideoScannerThread()

VideoScannerThread::~VideoScannerThread ( )
override

Definition at line 86 of file videoscan.cpp.

Member Function Documentation

◆ Q_DECLARE_TR_FUNCTIONS()

VideoScannerThread::Q_DECLARE_TR_FUNCTIONS ( VideoScannerThread  )
private

◆ run()

void VideoScannerThread::run ( )
overridevirtual

Runs the Qt event loop unless we have a QRunnable, in which case we run the runnable run instead.

Note
If you override this method you must call RunProlog before you do any work and RunEpilog before you exit the run method.

Reimplemented from MThread.

Definition at line 158 of file videoscan.cpp.

◆ SetDirs()

void VideoScannerThread::SetDirs ( QStringList  dirs)

Definition at line 98 of file videoscan.cpp.

Referenced by VideoScanner::doScan(), and MetadataFactory::VideoScan().

◆ SetHosts()

void VideoScannerThread::SetHosts ( const QStringList &  hosts)

Definition at line 91 of file videoscan.cpp.

Referenced by VideoScanner::doScan(), and MetadataFactory::VideoScan().

◆ SetProgressDialog()

void VideoScannerThread::SetProgressDialog ( MythUIProgressDialog dialog)
inline

Definition at line 71 of file videoscan.h.

Referenced by VideoScanner::doScan().

◆ GetOfflineSGHosts()

QStringList VideoScannerThread::GetOfflineSGHosts ( void  )
inline

Definition at line 72 of file videoscan.h.

Referenced by VideoScanner::finishedScan().

◆ getDataChanged()

bool VideoScannerThread::getDataChanged ( ) const
inline

Definition at line 73 of file videoscan.h.

Referenced by VideoScanner::finishedScan().

◆ ResetCounts()

void VideoScannerThread::ResetCounts ( )
inline

Definition at line 75 of file videoscan.h.

Referenced by MetadataFactory::customEvent().

◆ removeOrphans()

void VideoScannerThread::removeOrphans ( unsigned int  id,
const QString &  filename 
)
private

Definition at line 228 of file videoscan.cpp.

Referenced by updateDB().

◆ verifyFiles()

void VideoScannerThread::verifyFiles ( FileCheckList files,
PurgeList remove 
)
private

Definition at line 242 of file videoscan.cpp.

Referenced by run().

◆ updateDB()

bool VideoScannerThread::updateDB ( const FileCheckList add,
const PurgeList remove 
)
private

Definition at line 302 of file videoscan.cpp.

Referenced by run().

◆ buildFileList()

bool VideoScannerThread::buildFileList ( const QString &  directory,
const QStringList &  imageExtensions,
FileCheckList filelist 
) const
private

Definition at line 382 of file videoscan.cpp.

Referenced by run().

◆ SendProgressEvent()

void VideoScannerThread::SendProgressEvent ( uint  progress,
uint  total = 0,
QString  messsage = QString() 
)
private

Definition at line 401 of file videoscan.cpp.

Referenced by run(), updateDB(), and verifyFiles().

Member Data Documentation

◆ m_parent

QObject* VideoScannerThread::m_parent {nullptr}
private

Definition at line 99 of file videoscan.h.

Referenced by run(), and VideoScannerThread().

◆ m_listUnknown

bool VideoScannerThread::m_listUnknown {false}
private

Definition at line 101 of file videoscan.h.

Referenced by buildFileList(), and VideoScannerThread().

◆ m_removeAll

bool VideoScannerThread::m_removeAll {false}
private

Definition at line 102 of file videoscan.h.

Referenced by removeOrphans().

◆ m_keepAll

bool VideoScannerThread::m_keepAll {false}
private

Definition at line 103 of file videoscan.h.

Referenced by removeOrphans().

◆ m_hasGUI

bool VideoScannerThread::m_hasGUI {false}
private

Definition at line 104 of file videoscan.h.

Referenced by run(), updateDB(), verifyFiles(), and VideoScannerThread().

◆ m_directories

QStringList VideoScannerThread::m_directories
private

Definition at line 105 of file videoscan.h.

Referenced by run(), and SetDirs().

◆ m_liveSGHosts

QStringList VideoScannerThread::m_liveSGHosts
private

Definition at line 106 of file videoscan.h.

Referenced by run(), SetDirs(), SetHosts(), and verifyFiles().

◆ m_offlineSGHosts

QStringList VideoScannerThread::m_offlineSGHosts
private

Definition at line 107 of file videoscan.h.

Referenced by SetDirs(), and verifyFiles().

◆ m_dbMetadata

VideoMetadataListManager* VideoScannerThread::m_dbMetadata {nullptr}
private

Definition at line 109 of file videoscan.h.

Referenced by removeOrphans(), run(), verifyFiles(), VideoScannerThread(), and ~VideoScannerThread().

◆ m_dialog

MythUIProgressDialog* VideoScannerThread::m_dialog {nullptr}
private

Definition at line 110 of file videoscan.h.

Referenced by SendProgressEvent().

◆ m_addList

QList<int> VideoScannerThread::m_addList
private

Definition at line 112 of file videoscan.h.

Referenced by run(), and updateDB().

◆ m_movList

QList<int> VideoScannerThread::m_movList
private

Definition at line 113 of file videoscan.h.

Referenced by run(), and updateDB().

◆ m_delList

QList<int> VideoScannerThread::m_delList
private

Definition at line 114 of file videoscan.h.

Referenced by run(), and updateDB().

◆ m_dbDataChanged

bool VideoScannerThread::m_dbDataChanged {false}
private

Definition at line 115 of file videoscan.h.

Referenced by run().


The documentation for this class was generated from the following files: