| line |
true |
false |
branch |
|
29
|
3 |
0 |
struct Wrapper { |
|
|
3 |
0 |
struct Wrapper { |
|
|
2 |
0 |
struct Wrapper { |
|
|
25 |
0 |
struct Wrapper { |
|
|
7 |
0 |
struct Wrapper { |
|
33
|
2 |
0 |
explicit Wrapper (Callback real) : real(real) {} |
|
|
14 |
0 |
explicit Wrapper (Callback real) : real(real) {} |
|
34
|
3 |
0 |
explicit Wrapper (SimpleCallback simple) : simple(simple) {} |
|
|
3 |
0 |
explicit Wrapper (SimpleCallback simple) : simple(simple) {} |
|
|
2 |
0 |
explicit Wrapper (SimpleCallback simple) : simple(simple) {} |
|
|
11 |
0 |
explicit Wrapper (SimpleCallback simple) : simple(simple) {} |
|
|
5 |
0 |
explicit Wrapper (SimpleCallback simple) : simple(simple) {} |
|
38
|
0 |
3 |
if (real) return real(e, std::forward(args)...); |
|
|
0 |
4 |
if (real) return real(e, std::forward(args)...); |
|
|
0 |
0 |
if (real) return real(e, std::forward(args)...); |
|
|
2 |
5 |
if (real) return real(e, std::forward(args)...); |
|
|
11 |
7 |
if (real) return real(e, std::forward(args)...); |
|
40
|
4 |
0 |
simple(args...); |
|
51
|
1 |
0 |
return simple && simple == oth; |
|
|
1 |
0 |
return simple && simple == oth; |
|
|
1 |
0 |
return simple && simple == oth; |
|
|
1 |
0 |
return simple && simple == oth; |
|
|
1 |
0 |
return simple && simple == oth; |
|
|
1 |
0 |
return simple && simple == oth; |
|
|
2 |
0 |
return simple && simple == oth; |
|
|
2 |
0 |
return simple && simple == oth; |
|
56
|
1 |
0 |
return real && real == oth; |
|
|
1 |
0 |
return real && real == oth; |
|
|
1 |
0 |
return real && real == oth; |
|
|
1 |
0 |
return real && real == oth; |
|
|
4 |
0 |
return real && real == oth; |
|
|
3 |
1 |
return real && real == oth; |
|
77
|
0 |
6 |
if (!callback) return; |
|
78
|
0 |
6 |
if (back) listeners.push_back(Wrapper(callback)); |
|
|
0 |
0 |
if (back) listeners.push_back(Wrapper(callback)); |
|
|
0 |
0 |
if (back) listeners.push_back(Wrapper(callback)); |
|
79
|
6 |
0 |
else listeners.push_front(Wrapper(callback)); |
|
|
6 |
0 |
else listeners.push_front(Wrapper(callback)); |
|
83
|
0 |
2 |
if (!callback) return; |
|
|
0 |
8 |
if (!callback) return; |
|
84
|
1 |
1 |
if (back) listeners.push_back(Wrapper(std::forward(callback))); |
|
|
1 |
0 |
if (back) listeners.push_back(Wrapper(std::forward(callback))); |
|
|
1 |
0 |
if (back) listeners.push_back(Wrapper(std::forward(callback))); |
|
|
0 |
8 |
if (back) listeners.push_back(Wrapper(std::forward(callback))); |
|
|
0 |
0 |
if (back) listeners.push_back(Wrapper(std::forward(callback))); |
|
|
0 |
0 |
if (back) listeners.push_back(Wrapper(std::forward(callback))); |
|
85
|
1 |
0 |
else listeners.push_front(Wrapper(std::forward(callback))); |
|
|
1 |
0 |
else listeners.push_front(Wrapper(std::forward(callback))); |
|
|
8 |
0 |
else listeners.push_front(Wrapper(std::forward(callback))); |
|
|
8 |
0 |
else listeners.push_front(Wrapper(std::forward(callback))); |
|
89
|
0 |
7 |
if (!callback) return; |
|
|
0 |
1 |
if (!callback) return; |
|
90
|
1 |
6 |
if (back) listeners.push_back(Wrapper(callback)); |
|
|
1 |
0 |
if (back) listeners.push_back(Wrapper(callback)); |
|
|
1 |
0 |
if (back) listeners.push_back(Wrapper(callback)); |
|
|
0 |
1 |
if (back) listeners.push_back(Wrapper(callback)); |
|
|
0 |
0 |
if (back) listeners.push_back(Wrapper(callback)); |
|
|
0 |
0 |
if (back) listeners.push_back(Wrapper(callback)); |
|
91
|
6 |
0 |
else listeners.push_front(Wrapper(callback)); |
|
|
6 |
0 |
else listeners.push_front(Wrapper(callback)); |
|
|
1 |
0 |
else listeners.push_front(Wrapper(callback)); |
|
|
1 |
0 |
else listeners.push_front(Wrapper(callback)); |
|
95
|
0 |
3 |
if (!callback) return; |
|
|
0 |
3 |
if (!callback) return; |
|
|
0 |
4 |
if (!callback) return; |
|
|
0 |
2 |
if (!callback) return; |
|
|
0 |
4 |
if (!callback) return; |
|
96
|
0 |
3 |
if (back) listeners.push_back(Wrapper(std::forward(callback))); |
|
|
0 |
0 |
if (back) listeners.push_back(Wrapper(std::forward(callback))); |
|
|
0 |
0 |
if (back) listeners.push_back(Wrapper(std::forward(callback))); |
|
|
0 |
3 |
if (back) listeners.push_back(Wrapper(std::forward(callback))); |
|
|
0 |
0 |
if (back) listeners.push_back(Wrapper(std::forward(callback))); |
|
|
0 |
0 |
if (back) listeners.push_back(Wrapper(std::forward(callback))); |
|
|
2 |
2 |
if (back) listeners.push_back(Wrapper(std::forward(callback))); |
|
|
2 |
0 |
if (back) listeners.push_back(Wrapper(std::forward(callback))); |
|
|
2 |
0 |
if (back) listeners.push_back(Wrapper(std::forward(callback))); |
|
|
0 |
2 |
if (back) listeners.push_back(Wrapper(std::forward(callback))); |
|
|
0 |
0 |
if (back) listeners.push_back(Wrapper(std::forward(callback))); |
|
|
0 |
0 |
if (back) listeners.push_back(Wrapper(std::forward(callback))); |
|
|
0 |
4 |
if (back) listeners.push_back(Wrapper(std::forward(callback))); |
|
|
0 |
0 |
if (back) listeners.push_back(Wrapper(std::forward(callback))); |
|
|
0 |
0 |
if (back) listeners.push_back(Wrapper(std::forward(callback))); |
|
97
|
3 |
0 |
else listeners.push_front(Wrapper(std::forward(callback))); |
|
|
3 |
0 |
else listeners.push_front(Wrapper(std::forward(callback))); |
|
|
3 |
0 |
else listeners.push_front(Wrapper(std::forward(callback))); |
|
|
3 |
0 |
else listeners.push_front(Wrapper(std::forward(callback))); |
|
|
2 |
0 |
else listeners.push_front(Wrapper(std::forward(callback))); |
|
|
2 |
0 |
else listeners.push_front(Wrapper(std::forward(callback))); |
|
|
2 |
0 |
else listeners.push_front(Wrapper(std::forward(callback))); |
|
|
2 |
0 |
else listeners.push_front(Wrapper(std::forward(callback))); |
|
|
4 |
0 |
else listeners.push_front(Wrapper(std::forward(callback))); |
|
|
4 |
0 |
else listeners.push_front(Wrapper(std::forward(callback))); |
|
100
|
1 |
0 |
template void add_back (T&& callback) { add(std::forward(callback), true); } |
|
103
|
2 |
0 |
auto iter = listeners.begin(); |
|
|
2 |
0 |
auto iter = listeners.begin(); |
|
|
3 |
0 |
auto iter = listeners.begin(); |
|
|
27 |
0 |
auto iter = listeners.begin(); |
|
104
|
2 |
0 |
if (iter == listeners.end()) return optional_type::default_value(); |
|
|
2 |
0 |
if (iter == listeners.end()) return optional_type::default_value(); |
|
|
1 |
1 |
if (iter == listeners.end()) return optional_type::default_value(); |
|
|
2 |
0 |
if (iter == listeners.end()) return optional_type::default_value(); |
|
|
2 |
0 |
if (iter == listeners.end()) return optional_type::default_value(); |
|
|
0 |
2 |
if (iter == listeners.end()) return optional_type::default_value(); |
|
|
3 |
0 |
if (iter == listeners.end()) return optional_type::default_value(); |
|
|
3 |
0 |
if (iter == listeners.end()) return optional_type::default_value(); |
|
|
0 |
3 |
if (iter == listeners.end()) return optional_type::default_value(); |
|
|
27 |
0 |
if (iter == listeners.end()) return optional_type::default_value(); |
|
|
27 |
0 |
if (iter == listeners.end()) return optional_type::default_value(); |
|
|
11 |
16 |
if (iter == listeners.end()) return optional_type::default_value(); |
|
|
11 |
0 |
if (iter == listeners.end()) return optional_type::default_value(); |
|
106
|
1 |
0 |
Event e{*this, iter}; |
|
|
2 |
0 |
Event e{*this, iter}; |
|
|
3 |
0 |
Event e{*this, iter}; |
|
|
16 |
0 |
Event e{*this, iter}; |
|
107
|
1 |
0 |
return (*iter)(e, args...); |
|
|
2 |
0 |
return (*iter)(e, args...); |
|
|
3 |
0 |
return (*iter)(e, args...); |
|
|
16 |
0 |
return (*iter)(e, args...); |
|
112
|
1 |
0 |
for (auto iter = listeners.rbegin(); iter != listeners.rend(); ++iter) { |
|
|
1 |
0 |
for (auto iter = listeners.rbegin(); iter != listeners.rend(); ++iter) { |
|
|
1 |
0 |
for (auto iter = listeners.rbegin(); iter != listeners.rend(); ++iter) { |
|
|
1 |
0 |
for (auto iter = listeners.rbegin(); iter != listeners.rend(); ++iter) { |
|
|
0 |
0 |
for (auto iter = listeners.rbegin(); iter != listeners.rend(); ++iter) { |
|
|
1 |
0 |
for (auto iter = listeners.rbegin(); iter != listeners.rend(); ++iter) { |
|
|
1 |
0 |
for (auto iter = listeners.rbegin(); iter != listeners.rend(); ++iter) { |
|
|
1 |
0 |
for (auto iter = listeners.rbegin(); iter != listeners.rend(); ++iter) { |
|
|
1 |
0 |
for (auto iter = listeners.rbegin(); iter != listeners.rend(); ++iter) { |
|
|
0 |
0 |
for (auto iter = listeners.rbegin(); iter != listeners.rend(); ++iter) { |
|
|
1 |
0 |
for (auto iter = listeners.rbegin(); iter != listeners.rend(); ++iter) { |
|
|
1 |
0 |
for (auto iter = listeners.rbegin(); iter != listeners.rend(); ++iter) { |
|
|
1 |
0 |
for (auto iter = listeners.rbegin(); iter != listeners.rend(); ++iter) { |
|
|
1 |
0 |
for (auto iter = listeners.rbegin(); iter != listeners.rend(); ++iter) { |
|
|
0 |
0 |
for (auto iter = listeners.rbegin(); iter != listeners.rend(); ++iter) { |
|
|
1 |
0 |
for (auto iter = listeners.rbegin(); iter != listeners.rend(); ++iter) { |
|
|
1 |
0 |
for (auto iter = listeners.rbegin(); iter != listeners.rend(); ++iter) { |
|
|
1 |
0 |
for (auto iter = listeners.rbegin(); iter != listeners.rend(); ++iter) { |
|
|
1 |
0 |
for (auto iter = listeners.rbegin(); iter != listeners.rend(); ++iter) { |
|
|
0 |
0 |
for (auto iter = listeners.rbegin(); iter != listeners.rend(); ++iter) { |
|
|
1 |
0 |
for (auto iter = listeners.rbegin(); iter != listeners.rend(); ++iter) { |
|
|
1 |
0 |
for (auto iter = listeners.rbegin(); iter != listeners.rend(); ++iter) { |
|
|
1 |
0 |
for (auto iter = listeners.rbegin(); iter != listeners.rend(); ++iter) { |
|
|
1 |
0 |
for (auto iter = listeners.rbegin(); iter != listeners.rend(); ++iter) { |
|
|
0 |
0 |
for (auto iter = listeners.rbegin(); iter != listeners.rend(); ++iter) { |
|
|
2 |
0 |
for (auto iter = listeners.rbegin(); iter != listeners.rend(); ++iter) { |
|
|
2 |
0 |
for (auto iter = listeners.rbegin(); iter != listeners.rend(); ++iter) { |
|
|
2 |
0 |
for (auto iter = listeners.rbegin(); iter != listeners.rend(); ++iter) { |
|
|
2 |
0 |
for (auto iter = listeners.rbegin(); iter != listeners.rend(); ++iter) { |
|
|
0 |
0 |
for (auto iter = listeners.rbegin(); iter != listeners.rend(); ++iter) { |
|
|
3 |
0 |
for (auto iter = listeners.rbegin(); iter != listeners.rend(); ++iter) { |
|
|
4 |
0 |
for (auto iter = listeners.rbegin(); iter != listeners.rend(); ++iter) { |
|
|
4 |
0 |
for (auto iter = listeners.rbegin(); iter != listeners.rend(); ++iter) { |
|
|
4 |
0 |
for (auto iter = listeners.rbegin(); iter != listeners.rend(); ++iter) { |
|
|
1 |
0 |
for (auto iter = listeners.rbegin(); iter != listeners.rend(); ++iter) { |
|
113
|
1 |
0 |
if (iter->equal(callback)) { |
|
|
1 |
0 |
if (iter->equal(callback)) { |
|
|
1 |
0 |
if (iter->equal(callback)) { |
|
|
1 |
0 |
if (iter->equal(callback)) { |
|
|
1 |
0 |
if (iter->equal(callback)) { |
|
|
1 |
0 |
if (iter->equal(callback)) { |
|
|
1 |
0 |
if (iter->equal(callback)) { |
|
|
1 |
0 |
if (iter->equal(callback)) { |
|
|
1 |
0 |
if (iter->equal(callback)) { |
|
|
1 |
0 |
if (iter->equal(callback)) { |
|
|
2 |
0 |
if (iter->equal(callback)) { |
|
|
2 |
0 |
if (iter->equal(callback)) { |
|
|
4 |
0 |
if (iter->equal(callback)) { |
|
|
3 |
1 |
if (iter->equal(callback)) { |
|
114
|
1 |
0 |
listeners.erase(iter); |
|
|
1 |
0 |
listeners.erase(iter); |
|
|
1 |
0 |
listeners.erase(iter); |
|
|
1 |
0 |
listeners.erase(iter); |
|
|
1 |
0 |
listeners.erase(iter); |
|
|
1 |
0 |
listeners.erase(iter); |
|
|
1 |
0 |
listeners.erase(iter); |
|
|
1 |
0 |
listeners.erase(iter); |
|
|
1 |
0 |
listeners.erase(iter); |
|
|
1 |
0 |
listeners.erase(iter); |
|
|
2 |
0 |
listeners.erase(iter); |
|
|
2 |
0 |
listeners.erase(iter); |
|
|
3 |
0 |
listeners.erase(iter); |
|
|
3 |
0 |
listeners.erase(iter); |
|
124
|
1 |
0 |
auto tmp = function_details::tmp_abstract_function(std::forward(makable)); |
|
125
|
1 |
0 |
remove(tmp); |
|
132
|
1 |
0 |
auto tmp = function_details::tmp_abstract_function(std::forward(makable)); |
|
133
|
1 |
0 |
remove(tmp); |
|
148
|
3 |
0 |
if (e.state != listeners.end()) { |
|
|
2 |
1 |
if (e.state != listeners.end()) { |
|
|
4 |
0 |
if (e.state != listeners.end()) { |
|
|
2 |
2 |
if (e.state != listeners.end()) { |
|
|
7 |
0 |
if (e.state != listeners.end()) { |
|
|
4 |
3 |
if (e.state != listeners.end()) { |
|
|
15 |
0 |
if (e.state != listeners.end()) { |
|
|
2 |
13 |
if (e.state != listeners.end()) { |