MythTV
master
mythtv
libs
libmythmetadata
cleanup.cpp
Go to the documentation of this file.
1
// C++ headers
2
#include <algorithm>
3
#include <list>
4
5
#include "
cleanup.h
"
6
7
class
CleanupHooksImp
8
{
9
private
:
10
using
clean_list
= std::list<CleanupProc *>;
11
12
private
:
13
clean_list
m_cleanList
;
14
15
public
:
16
void
addHook
(
CleanupProc
*clean_proc)
17
{
18
m_cleanList
.push_back(clean_proc);
19
}
20
21
void
removeHook
(
CleanupProc
*clean_proc)
22
{
23
auto
p
=
std::ranges::find
(
m_cleanList
, clean_proc);
24
if
(
p
!=
m_cleanList
.end())
25
{
26
m_cleanList
.erase(
p
);
27
}
28
}
29
30
void
cleanup
()
31
{
32
for
(
auto
& item :
m_cleanList
)
33
item->doClean();
34
m_cleanList
.clear();
35
}
36
};
37
38
namespace
39
{
40
CleanupHooks
*
g_cleanup_hooks
=
nullptr
;
41
}
42
43
CleanupHooks
*
CleanupHooks::getInstance
()
44
{
45
if
(!
g_cleanup_hooks
)
46
{
47
g_cleanup_hooks
=
new
CleanupHooks
();
48
}
49
return
g_cleanup_hooks
;
50
}
51
52
void
CleanupHooks::addHook
(
CleanupProc
*clean_proc)
53
{
54
m_imp
->
addHook
(clean_proc);
55
}
56
57
void
CleanupHooks::removeHook
(
CleanupProc
*clean_proc)
58
{
59
m_imp
->
removeHook
(clean_proc);
60
}
61
62
void
CleanupHooks::cleanup
()
63
{
64
m_imp
->
cleanup
();
65
delete
g_cleanup_hooks
;
66
g_cleanup_hooks
=
nullptr
;
67
}
68
69
CleanupHooks::CleanupHooks
()
70
: m_imp(new
CleanupHooksImp
())
71
{
72
}
73
74
CleanupHooks::~CleanupHooks
()
75
{
76
delete
m_imp
;
77
}
CleanupHooksImp
Definition:
cleanup.cpp:8
CleanupHooksImp::addHook
void addHook(CleanupProc *clean_proc)
Definition:
cleanup.cpp:16
CleanupHooksImp::removeHook
void removeHook(CleanupProc *clean_proc)
Definition:
cleanup.cpp:21
CleanupHooksImp::m_cleanList
clean_list m_cleanList
Definition:
cleanup.cpp:13
CleanupHooksImp::cleanup
void cleanup()
Definition:
cleanup.cpp:30
CleanupHooksImp::clean_list
std::list< CleanupProc * > clean_list
Definition:
cleanup.cpp:10
CleanupHooks
Definition:
cleanup.h:14
CleanupHooks::m_imp
class CleanupHooksImp * m_imp
Definition:
cleanup.h:26
CleanupHooks::~CleanupHooks
~CleanupHooks()
Definition:
cleanup.cpp:74
CleanupHooks::addHook
void addHook(CleanupProc *clean_proc)
Definition:
cleanup.cpp:52
CleanupHooks::getInstance
static CleanupHooks * getInstance()
Definition:
cleanup.cpp:43
CleanupHooks::CleanupHooks
CleanupHooks()
Definition:
cleanup.cpp:69
CleanupHooks::cleanup
void cleanup()
Definition:
cleanup.cpp:62
CleanupHooks::removeHook
void removeHook(CleanupProc *clean_proc)
Definition:
cleanup.cpp:57
CleanupProc
Definition:
cleanup.h:7
cleanup.h
find
static pid_list_t::iterator find(const PIDInfoMap &map, pid_list_t &list, pid_list_t::iterator begin, pid_list_t::iterator end, bool find_open)
Definition:
dvbstreamhandler.cpp:364
anonymous_namespace{cleanup.cpp}::g_cleanup_hooks
CleanupHooks * g_cleanup_hooks
Definition:
cleanup.cpp:40
hardwareprofile.config.p
p
Definition:
config.py:33
Generated on Tue Jul 28 2026 03:18:34 for MythTV by
1.9.4