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