8 #include "GaudiKernel/DataObject.h"
9 #include "GaudiKernel/LinkManager.h"
10 #include "GaudiKernel/IDataProviderSvc.h"
11 #include "GaudiKernel/IDataManagerSvc.h"
12 #include "GaudiKernel/SmartDataPtr.h"
13 #include "GaudiKernel/Algorithm.h"
14 #include "GaudiKernel/IRegistry.h"
15 #include "GaudiKernel/MsgStream.h"
16 #include "GaudiKernel/SmartIF.h"
55 typedef vector<IRegistry*> Leaves;
59 for (Leaves::const_iterator
i=leaves.begin();
i != leaves.end();
i++ ) {
64 SniffInfo::iterator j=m_info.find(
id);
65 if ( j == m_info.end() ) {
68 (*j).second.count = 0;
69 (*j).second.id = m_info.size();
72 m_curr[id].id = m_info[id].id;
73 m_curr[id].count = explore(pReg);
93 log <<
MSG::ALWAYS <<
"== BEGIN ============= Access list content:" << m_info.size() <<
endmsg;
94 for(SniffInfo::const_iterator
i=m_info.begin();
i!=m_info.end();++
i) {
96 log <<
"== ITEM == " << right << setw(4) << dec << info.
id <<
" clid:"
97 << right << setw(8) << hex << info.
clid <<
" Count:"
98 << right << setw(6) << dec << info.
count <<
" "
101 Correlations::const_iterator
c=m_corr.find((*i).first);
102 if ( c != m_corr.end() ) {
104 log <<
"== CORRELATIONS:" << (*c).second.size() <<
endmsg;
105 for(map<int,int>::const_iterator k=(*c).second.begin(); k!=(*c).second.end();++k) {
106 if ( (*k).second > 0 ) {
107 log << dec << (*k).first <<
":" << (*k).second <<
" ";
114 if ( cnt > 0 ) log <<
endmsg;
116 Correlations::const_iterator
l=m_links.find((*i).first);
117 if ( l != m_links.end() ) {
119 log <<
"== LINKS:" << (*l).second.size() <<
endmsg;
120 for(map<int,int>::const_iterator k=(*l).second.begin(); k!=(*l).second.end();++k) {
121 if ( (*k).second > 0 ) {
122 log << dec << (*k).first <<
":" << (*k).second <<
" ";
129 if ( cnt > 0 ) log <<
endmsg;
132 log <<
MSG::ALWAYS <<
"== END =============== Access list content:" << m_info.size() <<
endmsg;
143 m_curr[
"/Event"].count = explore(root->
registry());
144 m_curr[
"/Event"].clid = root->
clID();
145 m_curr[
"/Event"].id = m_curr.size();
146 for(SniffInfo::const_iterator
i=m_curr.begin();
i!=m_curr.end();++
i) {
150 for(SniffInfo::const_iterator
i=m_info.begin();
i!=m_info.end();++
i) {
151 const string& nam = (*i).first;
153 Correlations::iterator
c=m_corr.find(nam);
154 if ( c == m_corr.end() ) {
155 m_corr[nam] = map<int,int>();
156 c = m_corr.find(nam);
158 for(SniffInfo::const_iterator
l=m_curr.begin();
l!=m_curr.end();++
l) {
160 map<int,int>::iterator k = (*c).second.find(li.
id);
161 if ( k==(*c).second.end() ) (*c).second[li.
id] = 0;
162 ++((*c).second[li.
id]);
166 if ( c == m_links.end() ) {
167 m_links[nam] = map<int,int>();
168 c = m_links.find(nam);
170 if ( m_curr.find(nam) != m_curr.end() ) {
174 for(
long l=0;
l<m->
size(); ++
l) {
176 SniffInfo::const_iterator il=m_curr.find(lnk->
path());
178 if ( il != m_curr.end() ) {
181 map<int,int>::iterator k = (*c).second.find(li.
id);
182 if ( k==(*c).second.end() ) (*c).second[li.
id] = 0;
183 ++((*c).second[li.
id]);