Go to the documentation of this file.
60 StatusCode sc = m_mgr->objectLeaves( pObj, leaves );
62 for (
auto& pReg : leaves ) {
64 if ( !pReg->address() || !pReg->object() )
continue;
65 const string&
id = pReg->identifier();
66 auto j = m_info.
find(
id );
67 if (
j == m_info.
end() ) {
69 j = m_info.
find(
id );
71 j->second.id = m_info.
size();
72 j->second.clid = pReg->object()->clID();
74 m_curr[
id].id = m_info[
id].id;
75 m_curr[
id].
count = explore( pReg );
94 log <<
"== BEGIN ============= Access list content:" << m_info.
size() <<
endmsg;
95 for (
const auto& i : m_info ) {
99 auto c = m_corr.
find( i.first );
100 if (
c != m_corr.
end() ) {
102 log <<
"== CORRELATIONS:" << ( *c ).second.size() <<
endmsg;
103 for (
const auto& k :
c->second ) {
104 if ( k.second > 0 ) {
105 log <<
dec << k.first <<
":" << k.second <<
" ";
114 auto l = m_links.
find( i.first );
115 if (
l != m_links.
end() ) {
117 log <<
"== LINKS:" <<
l->second.size() <<
endmsg;
118 for (
const auto& k :
l->second ) {
119 if ( k.second > 0 ) {
120 log <<
dec << k.first <<
":" << k.second <<
" ";
130 always() <<
"== END =============== Access list content:" << m_info.size() <<
endmsg;
141 auto& evnt = m_curr[
"/Event"];
142 evnt.
count = explore(
root->registry() );
143 evnt.clid =
root->clID();
144 evnt.id = m_curr.
size();
145 for (
const auto& i : m_curr ) m_info[i.first].
count++;
146 for (
const auto& i : m_info ) {
147 const string& nam = i.first;
149 auto c = m_corr.
find( nam );
150 if (
c == m_corr.
end() ) {
152 c = m_corr.
find( nam );
154 for (
const auto&
l : m_curr ) {
155 const auto&
id =
l.second.id;
156 auto k =
c->second.find(
id );
157 if ( k ==
c->second.end() ) k =
c->second.emplace(
id, 0 ).first;
161 c = m_links.
find( nam );
163 if ( m_curr.find( nam ) == m_curr.end() )
continue;
166 if ( !obj )
continue;
169 for (
long l = 0;
l <
m->size(); ++
l ) {
170 auto* lnk =
m->link(
l );
171 auto il = m_curr.find( lnk->path() );
173 if ( il == m_curr.end() )
continue;
174 if ( !lnk->object() )
continue;
175 const auto&
id = il->second.id;
176 auto k =
c->second.find(
id );
177 if ( k ==
c->second.end() ) k =
c->second.emplace(
id, 0 ).first;
StatusCode initialize() override
Initialize.
Alias for backward compatibility.
SmartIF< IDataManagerSvc > m_mgr
map< string, map< int, int > > Correlations
StatusCode execute() override
Execute procedure.
void clear(STATE_TYPE _i=std::ios_base::failbit)
unsigned int CLID
Class ID definition.
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
size_t explore(IRegistry *pObj)
StatusCode finalize() override
Finalize.
constexpr static const auto SUCCESS
A small class used to access easily (and efficiently) data items residing in data stores.
#define DECLARE_COMPONENT(type)
map< string, LeafInfo > SniffInfo
Algorithm(std::string name, ISvcLocator *svcloc, std::string version=PACKAGE_VERSION)
Constructor.
LinkManager * linkMgr()
Retrieve Link manager.