MythTV master
eitcache.h
Go to the documentation of this file.
1/* -*- Mode: c++ -*-
2 * Copyright 2006 (C) Stuart Auchterlonie <stuarta at squashedfrog.net>
3 * License: GPL v2
4 */
5
6#ifndef EIT_CACHE_H
7#define EIT_CACHE_H
8
9#include <cstdint>
10
11// Qt headers
12#include <QString>
13#include <QMutex>
14#include <QMap>
15
16// MythTV headers
17#include "mythtvexp.h"
18
19using event_map_t = QMap<uint, uint64_t>;
20using key_map_t = QMap<uint, event_map_t*>;
21
23{
24 public:
25 EITCache();
26 ~EITCache();
27
28 bool IsNewEIT(uint chanid, uint tableid, uint version,
29 uint eventid, uint endtime);
30
31 uint PruneOldEntries(uint utc_timestamp);
32 void WriteToDB(void);
33
34 void ResetStatistics(void);
35 QString GetStatistics(void) const;
36
37 private:
39 bool WriteChannelToDB(QStringList &value_clauses, uint chanid);
40
41 // Event key cache
43
44 mutable QMutex m_eventMapLock;
46
47 // Cache persistency in database table eit_cache
48 bool m_persistent {true};
49
50 // Statistics
61
62 static const uint kVersionMax;
63
64 public:
65 static MTV_PUBLIC void ClearChannelLocks(void);
66 void SetPersistent(bool persistent) { m_persistent = persistent; }
67};
68
69#endif // EIT_CACHE_H
70
71/* vim: set expandtab tabstop=4 shiftwidth=4: */
uint m_entryCnt
Definition: eitcache.h:56
~EITCache()
Definition: eitcache.cpp:27
uint PruneOldEntries(uint utc_timestamp)
Prunes entries that describe events ending before timestamp time.
Definition: eitcache.cpp:434
void ResetStatistics(void)
Definition: eitcache.cpp:32
EITCache()
Definition: eitcache.cpp:21
uint m_hitCnt
Definition: eitcache.h:52
uint m_verChgCnt
Definition: eitcache.h:54
static const uint kVersionMax
Definition: eitcache.h:62
void SetPersistent(bool persistent)
Definition: eitcache.h:66
uint m_wrongChannelHitCnt
Definition: eitcache.h:60
uint m_pruneCnt
Definition: eitcache.h:57
uint m_lastPruneTime
Definition: eitcache.h:45
void WriteToDB(void)
Definition: eitcache.cpp:327
uint m_endChgCnt
Definition: eitcache.h:55
bool WriteChannelToDB(QStringList &value_clauses, uint chanid)
Definition: eitcache.cpp:260
uint m_accessCnt
Definition: eitcache.h:51
uint m_prunedHitCnt
Definition: eitcache.h:58
bool IsNewEIT(uint chanid, uint tableid, uint version, uint eventid, uint endtime)
Definition: eitcache.cpp:359
static MTV_PUBLIC void ClearChannelLocks(void)
Removes old channel locks, use it only at master backend start.
Definition: eitcache.cpp:462
uint m_futureHitCnt
Definition: eitcache.h:59
bool m_persistent
Definition: eitcache.h:48
key_map_t m_channelMap
Definition: eitcache.h:42
QString GetStatistics(void) const
Definition: eitcache.cpp:46
event_map_t * LoadChannel(uint chanid)
Definition: eitcache.cpp:209
uint m_tblChgCnt
Definition: eitcache.h:53
QMutex m_eventMapLock
Definition: eitcache.h:44
QMap< uint, event_map_t * > key_map_t
Definition: eitcache.h:20
QMap< uint, uint64_t > event_map_t
Definition: eitcache.h:19
unsigned int uint
Definition: freesurround.h:24
#define MTV_PUBLIC
Definition: mythtvexp.h:15
string version
Definition: giantbomb.py:185