Go to the documentation of this file.
26 info() <<
"initialize" <<
endmsg;
42 info() <<
"reinitialize" <<
endmsg;
65 const auto len = lib.
length();
66 if ( len >= 3 && lib.
compare( len - 3, 3,
".so" ) == 0 ) {
67 if ( ( len >= 7 && ( lib.
compare( len - 7, 4,
"Dict" ) == 0 || lib.
compare( len - 7, 4,
"Core" ) == 0 ) ) ||
68 ( len >= 8 && lib.
compare( len - 8, 5,
"Cling" ) == 0 ) ) {
71 }
else if ( lib.
rfind(
"Dict.so" ) != std::string::npos || lib.
rfind(
"Cling.so" ) != std::string::npos ||
72 lib.
rfind(
"Core.so" ) != std::string::npos ) {
77 if ( fnc ==
"_PyObject_GC_Malloc" )
return;
79 if ( fnc ==
"PyThread_get_thread_ident" )
return;
80 if ( fnc ==
"local" )
return;
86 fatal() <<
"Unchecked StatusCode in " << fnc <<
" from lib " << lib <<
endmsg;
94 if ( itr !=
m_dat.end() ) {
95 ++( itr->second.count );
116 for (
const auto& itr : dat_sorted ) {
117 const auto& dat = itr.second;
124 os.
setf( std::ios_base::right, std::ios_base::adjustfield );
129 os.
setf( std::ios_base::left, std::ios_base::adjustfield );
133 os.
setf( std::ios_base::left, std::ios_base::adjustfield );
139 info() <<
"listing all unchecked return codes:" <<
endmsg;
141 <<
"Num | Function | Source Library" <<
std::endl
142 <<
"----+--------------------------------+------------------------------------------" <<
std::endl
153 auto loc = str.
find(
"=" );
154 if ( loc == std::string::npos ) {
163 if (
key ==
"FCN" ||
key ==
"FNC" ) {
166 }
else if (
key ==
"LIB" ) {
173 warning() <<
"ignoring unknown token in Filter: " << str <<
endmsg;
StatusCode initialize() override
Gaudi::StateMachine::State m_state
Service state
Gaudi::Property< bool > m_abort
std::set< std::string > m_filterfnc
void regFnc(const std::string &func, const std::string &lib) override
MSG::Level msgLevel() const
get the cached level (originally extracted from the embedded MsgStream)
void parseFilter(const std::string &str, std::string &fnc, std::string &lib) const
std::set< std::string > m_filterlib
StatusCode finalize() override
void toupper(std::string &s)
const ValueType & value() const
Backward compatibility (.
Gaudi::Property< bool > m_dict
StatusCode reinitialize() override
bool failsFilter(const std::string &fnc, const std::string &lib) const
Gaudi::Property< std::vector< std::string > > m_pFilter
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
constexpr static const auto SUCCESS
#define DECLARE_COMPONENT(type)
void list() const override
StatusCode initialize() override
tbb::concurrent_unordered_map< std::string, StatCodeDat > m_dat