MythTV master
programinfoupdater.h
Go to the documentation of this file.
1#ifndef PROGRAM_INFO_UPDATER_H
2#define PROGRAM_INFO_UPDATER_H
3
4// C++ headers
5#include <cstdint> // for [u]int[32,64]_t
6#include <vector>
7
8// Qt headers
9#include <QWaitCondition>
10#include <QDateTime>
11#include <QRunnable>
12#include <QMutex>
13#include <QHash>
14
15// Myth
16#include "mythbaseexp.h"
17
18enum PIAction : std::uint8_t {
23};
24
26{
27 public:
28 PIKeyAction(uint recordedid, PIAction a) :
29 m_recordedid(recordedid), m_action(a) { }
30
33
34 bool operator==(PIKeyAction other) const
35 {
36 return (m_recordedid == other.m_recordedid);
37 }
38};
39
41{
42 public:
43 PIKeyData(PIAction a, uint64_t f) : m_action(a), m_filesize(f) { }
45 uint64_t m_filesize;
46};
47
48class MBASE_PUBLIC ProgramInfoUpdater : public QRunnable
49{
50 public:
51 ProgramInfoUpdater() { setAutoDelete(false); }
52
53 void insert(uint recordedid,
54 PIAction action, uint64_t filesize = 0ULL);
55 void run(void) override; // QRunnable
56
57 private:
58 QMutex m_lock;
59 QWaitCondition m_moreWork;
60 bool m_isRunning {false};
61 std::vector<PIKeyAction> m_needsAddDelete;
62 QHash<uint,PIKeyData> m_needsUpdate;
63};
64
65#endif // PROGRAM_INFO_UPDATER_H
PIKeyAction(uint recordedid, PIAction a)
bool operator==(PIKeyAction other) const
PIAction m_action
uint64_t m_filesize
PIKeyData(PIAction a, uint64_t f)
QHash< uint, PIKeyData > m_needsUpdate
std::vector< PIKeyAction > m_needsAddDelete
QWaitCondition m_moreWork
unsigned int uint
Definition: freesurround.h:24
#define MBASE_PUBLIC
Definition: mythbaseexp.h:15
void run(const QString &name, Class *object, void(Class::*fn)())
Definition: mconcurrent.h:137
@ kPIUpdateFileSize
@ kPIUpdate
@ kPIAdd
@ kPIDelete