CMS 3D CMS Logo

List of all members | Public Member Functions | Static Public Member Functions | Protected Member Functions | Static Protected Member Functions | Protected Attributes | Static Protected Attributes | Private Member Functions | Friends
edm::service::ELstatistics Class Reference

#include <ELstatistics.h>

Inheritance diagram for edm::service::ELstatistics:
edm::service::ELdestination

Public Member Functions

 ELstatistics ()
 
 ELstatistics (std::ostream &osp)
 
 ELstatistics (int spaceLimit)
 
 ELstatistics (int spaceLimit, std::ostream &osp)
 
 ELstatistics (const ELstatistics &orig)
 
bool log (const edm::ErrorObj &msg) override
 
void noTerminationSummary ()
 
void summary (unsigned long overfullWaitCount)
 
void summaryForJobReport (std::map< std::string, double > &sm)
 
void wipe () override
 
 ~ELstatistics () override
 
- Public Member Functions inherited from edm::service::ELdestination
virtual void attachEpilogue ()
 
virtual void attachTime ()
 
virtual void changeFile (std::ostream &os)
 
virtual void changeFile (const ELstring &filename)
 
 ELdestination ()
 
virtual void excludeModule (ELstring const &moduleName)
 
virtual void filterModule (ELstring const &moduleName)
 
virtual void finish ()
 
virtual void flush ()
 
virtual int getLineLength () const
 
virtual ELstring getNewline () const
 
virtual void ignoreModule (ELstring const &moduleName)
 
virtual void includeContext ()
 
virtual void includeModule ()
 
virtual void includeSerial ()
 
virtual void includeSubroutine ()
 
virtual void includeText ()
 
virtual void includeTime ()
 
virtual void respondToModule (ELstring const &moduleName)
 
virtual void separateEpilogue ()
 
virtual void separateTime ()
 
void setInterval (const ELstring &s, int interval)
 
void setInterval (const ELseverityLevel &sv, int interval)
 
void setLimit (const ELstring &s, int n)
 
void setLimit (const ELseverityLevel &sv, int n)
 
virtual int setLineLength (int len)
 
virtual void setTableLimit (int n)
 
void setThreshold (const ELseverityLevel &sv)
 
void setTimespan (const ELstring &s, int n)
 
void setTimespan (const ELseverityLevel &sv, int n)
 
void setTraceThreshold (const ELseverityLevel &sv)
 
virtual void suppressContext ()
 
virtual void suppressModule ()
 
virtual void suppressSerial ()
 
virtual void suppressSubroutine ()
 
virtual void suppressText ()
 
virtual void suppressTime ()
 
virtual bool thisShouldBeIgnored (const ELstring &s) const
 
virtual void useContext ()
 
virtual void useFullContext ()
 
virtual ~ELdestination ()
 

Static Public Member Functions

static void noteGroupedCategory (std::string const &cat)
 

Protected Member Functions

void clearSummary ()
 
std::map< ELextendedID, StatsCountstatisticsMap () const
 
void zero () override
 

Static Protected Member Functions

static ELstring formSummary (ELmap_stats &stats)
 

Protected Attributes

bool printAtTermination
 
ELmap_stats stats
 
int tableLimit
 
std::ostream & termStream
 
bool updatedStats
 
- Protected Attributes inherited from edm::service::ELdestination
bool ignoreMostModules
 
std::unordered_set< std::string > ignoreThese
 
ELstring indent
 
ELlimitsTable limits
 
int lineLength
 
ELstring newline
 
ELstring preamble
 
bool respondToMostModules
 
std::unordered_set< std::string > respondToThese
 
ELseverityLevel threshold
 
ELseverityLevel traceThreshold
 

Static Protected Attributes

static std::set< std::string > groupedCategories
 
- Static Protected Attributes inherited from edm::service::ELdestination
static const int defaultLineLength = 80
 

Private Member Functions

std::string dualLogName (std::string const &s)
 
ELstatisticsoperator= (const ELstatistics &orig)=delete
 
void summary (std::ostream &os, const ELstring &title)
 

Friends

class ELadministrator
 

Detailed Description

Definition at line 50 of file ELstatistics.h.

Constructor & Destructor Documentation

edm::service::ELstatistics::ELstatistics ( )

Definition at line 48 of file ELstatistics.cc.

References MessageLogger_cfi::cerr.

49  : ELdestination(),
50  tableLimit(-1),
51  stats(),
52  updatedStats(false),
54  printAtTermination(true) {
55 #ifdef ELstatisticsCONSTRUCTOR_TRACE
56  std::cerr << "Constructor for ELstatistics()\n";
57 #endif
58 
59  } // ELstatistics()
std::ostream & termStream
Definition: ELstatistics.h:99
edm::service::ELstatistics::ELstatistics ( std::ostream &  osp)

Definition at line 61 of file ELstatistics.cc.

References MessageLogger_cfi::cerr.

62  : ELdestination(), tableLimit(-1), stats(), updatedStats(false), termStream(osp), printAtTermination(true) {
63 #ifdef ELstatisticsCONSTRUCTOR_TRACE
64  std::cerr << "Constructor for ELstatistics(osp)\n";
65 #endif
66 
67  } // ELstatistics()
std::ostream & termStream
Definition: ELstatistics.h:99
edm::service::ELstatistics::ELstatistics ( int  spaceLimit)

Definition at line 69 of file ELstatistics.cc.

References MessageLogger_cfi::cerr.

70  : ELdestination(),
71  tableLimit(spaceLimit),
72  stats(),
73  updatedStats(false),
75  printAtTermination(true) {
76 #ifdef ELstatisticsCONSTRUCTOR_TRACE
77  std::cerr << "Constructor for ELstatistics(spaceLimit)\n";
78 #endif
79 
80  } // ELstatistics()
std::ostream & termStream
Definition: ELstatistics.h:99
edm::service::ELstatistics::ELstatistics ( int  spaceLimit,
std::ostream &  osp 
)

Definition at line 82 of file ELstatistics.cc.

References MessageLogger_cfi::cerr.

83  : ELdestination(),
84  tableLimit(spaceLimit),
85  stats(),
86  updatedStats(false),
87  termStream(osp),
88  printAtTermination(true) {
89 #ifdef ELstatisticsCONSTRUCTOR_TRACE
90  std::cerr << "Constructor for ELstatistics(spaceLimit,osp)\n";
91 #endif
92 
93  } // ELstatistics()
std::ostream & termStream
Definition: ELstatistics.h:99
edm::service::ELstatistics::ELstatistics ( const ELstatistics orig)

Definition at line 95 of file ELstatistics.cc.

References MessageLogger_cfi::cerr, edm::service::ELdestination::ignoreMostModules, edm::service::ELdestination::ignoreThese, edm::service::ELdestination::respondToMostModules, and edm::service::ELdestination::respondToThese.

96  : ELdestination(),
97  tableLimit(orig.tableLimit),
98  stats(orig.stats),
99  updatedStats(orig.updatedStats),
100  termStream(orig.termStream),
101  printAtTermination(orig.printAtTermination) {
102 #ifdef ELstatisticsCONSTRUCTOR_TRACE
103  std::cerr << "Copy constructor for ELstatistics()\n";
104 #endif
105 
106  ignoreMostModules = orig.ignoreMostModules;
107  respondToThese = orig.respondToThese;
108  respondToMostModules = orig.respondToMostModules;
109  ignoreThese = orig.ignoreThese;
110 
111  } // ELstatistics()
std::unordered_set< std::string > ignoreThese
std::ostream & termStream
Definition: ELstatistics.h:99
std::unordered_set< std::string > respondToThese
edm::service::ELstatistics::~ELstatistics ( )
override

Definition at line 113 of file ELstatistics.cc.

References MessageLogger_cfi::cerr, printAtTermination, summary(), termStream, and updatedStats.

113  {
114 #ifdef ELstatisticsCONSTRUCTOR_TRACE
115  std::cerr << "Destructor for ELstatistics\n";
116 #endif
117 
119  summary(termStream, "Termination Summary");
120 
121  } // ~ELstatistics()
std::ostream & termStream
Definition: ELstatistics.h:99
void summary(unsigned long overfullWaitCount)

Member Function Documentation

void edm::service::ELstatistics::clearSummary ( )
protected

Definition at line 195 of file ELstatistics.cc.

References edm::service::ELdestination::limits, alignCSCRings::s, stats, and edm::service::ELlimitsTable::zero().

195  {
196  limits.zero();
197  ELmap_stats::iterator s;
198  for (s = stats.begin(); s != stats.end(); ++s) {
199  (*s).second.n = 0;
200  (*s).second.context1 = (*s).second.context2 = (*s).second.contextLast = "";
201  }
202 
203  } // clearSummary()
std::string edm::service::ELstatistics::dualLogName ( std::string const &  s)
private

Definition at line 464 of file ELstatistics.cc.

References groupedCategories.

Referenced by summaryForJobReport().

464  {
465  if (s == "LogDebug")
466  return "LogDebug_LogTrace";
467  if (s == "LogInfo")
468  return "LogInfo_LogVerbatim";
469  if (s == "LogWarning")
470  return "LogWarnng_LogPrint";
471  if (s == "LogError")
472  return "LogError_LogProblem";
473  if (s == "LogSystem")
474  return "LogSystem_LogAbsolute";
475  return "UnusedSeverity";
476  }
ELstring edm::service::ELstatistics::formSummary ( ELmap_stats stats)
staticprotected

Definition at line 213 of file ELstatistics.cc.

References eostools::cat(), g, edm::ELseverityLevel::getLevel(), edm::ELseverityLevel::getName(), edm::ELseverityLevel::getSymbol(), groupedCategories, mps_fire::i, gen::k, dttmaxenums::L, gen::n, edm::ELseverityLevel::nLevels, p3, alignCSCRings::s, edm::ELextendedID::severity, interestingDetIdCollectionProducer_cfi::severityLevel, AlCaHLTBitMon_QueryRunRegistry::string, and protons_cff::t.

Referenced by summary().

213  {
214  // Major changes 8/16/07 mf, including making this
215  // a static member function instead of a free function
216 
217  using std::ios; /* _base ? */
218  using std::left;
219  using std::right;
220  using std::setw;
221 
222  std::ostringstream s;
223  int n = 0;
224 
225  // ----- Summary part I:
226  //
227  bool ftnote(false);
228 
229  struct part3 {
230  long n, t;
231  part3() : n(0L), t(0L) { ; }
233 
234  std::set<std::string>::iterator gcEnd = groupedCategories.end();
235  std::set<std::string> gCats = groupedCategories; // TEMP FOR DEBUGGING SANITY
236  for (ELmap_stats::const_iterator i = stats.begin(); i != stats.end(); ++i) {
237  // If this is a grouped category, wait till later to output its stats
238  std::string cat = (*i).first.id;
239  if (groupedCategories.find(cat) != gcEnd) { // 8/16/07 mf
240  continue; // We will process these categories later
241  }
242 
243  // ----- Emit new process and part I header, if needed:
244  //
245  if (n == 0) {
246  s << "\n";
247  s << " type category sev module "
248  "subroutine count total\n"
249  << " ---- -------------------- -- ---------------- "
250  "---------------- ----- -----\n";
251  }
252  // ----- Emit detailed message information:
253  //
254  s << right << std::setw(5) << ++n << ' ' << left << std::setw(20) << (*i).first.id.substr(0, 20) << ' ' << left
255  << std::setw(2) << (*i).first.severity.getSymbol() << ' ' << left << std::setw(16)
256  << (*i).first.module.substr(0, 16) << ' ' << left << std::setw(16) << (*i).first.subroutine.substr(0, 16)
257  << right << std::setw(7) << (*i).second.n << left << std::setw(1) << ((*i).second.ignoredFlag ? '*' : ' ')
258  << right << std::setw(8) << (*i).second.aggregateN << '\n';
259  ftnote = ftnote || (*i).second.ignoredFlag;
260 
261  // ----- Obtain information for Part III, below:
262  //
263  ELextendedID xid = (*i).first;
264  p3[xid.severity.getLevel()].n += (*i).second.n;
265  p3[xid.severity.getLevel()].t += (*i).second.aggregateN;
266  } // for i
267 
268  // ----- Part Ia: The grouped categories
269  for (std::set<std::string>::iterator g = groupedCategories.begin(); g != gcEnd; ++g) {
270  int groupTotal = 0;
271  int groupAggregateN = 0;
272  ELseverityLevel severityLevel;
273  bool groupIgnored = true;
274  for (ELmap_stats::const_iterator i = stats.begin(); i != stats.end(); ++i) {
275  if ((*i).first.id == *g) {
276  if (groupTotal == 0)
277  severityLevel = (*i).first.severity;
278  groupIgnored &= (*i).second.ignoredFlag;
279  groupAggregateN += (*i).second.aggregateN;
280  ++groupTotal;
281  }
282  } // for i
283  if (groupTotal > 0) {
284  // ----- Emit detailed message information:
285  //
286  s << right << std::setw(5) << ++n << ' ' << left << std::setw(20) << (*g).substr(0, 20) << ' ' << left
287  << std::setw(2) << severityLevel.getSymbol() << ' ' << left << std::setw(16) << " <Any Module> " << ' '
288  << left << std::setw(16) << "<Any Function>" << right << std::setw(7) << groupTotal << left << std::setw(1)
289  << (groupIgnored ? '*' : ' ') << right << std::setw(8) << groupAggregateN << '\n';
290  ftnote = ftnote || groupIgnored;
291 
292  // ----- Obtain information for Part III, below:
293  //
294  int lev = severityLevel.getLevel();
295  p3[lev].n += groupTotal;
296  p3[lev].t += groupAggregateN;
297  } // end if groupTotal>0
298  } // for g
299 
300  // ----- Provide footnote to part I, if needed:
301  //
302  if (ftnote)
303  s << "\n* Some occurrences of this message"
304  " were suppressed in all logs, due to limits.\n";
305 
306  // ----- Summary part II:
307  //
308  n = 0;
309  for (ELmap_stats::const_iterator i = stats.begin(); i != stats.end(); ++i) {
310  std::string cat = (*i).first.id;
311  if (groupedCategories.find(cat) != gcEnd) { // 8/16/07 mf
312  continue; // We will process these categories later
313  }
314  if (n == 0) {
315  s << '\n'
316  << " type category Examples: "
317  "run/evt run/evt run/evt\n"
318  << " ---- -------------------- ----"
319  "------------ ---------------- ----------------\n";
320  }
321  s << right << std::setw(5) << ++n << ' ' << left << std::setw(20) << (*i).first.id.c_str() << ' ' << left
322  << std::setw(16) << (*i).second.context1.c_str() << ' ' << left << std::setw(16)
323  << (*i).second.context2.c_str() << ' ' << (*i).second.contextLast.c_str() << '\n';
324  } // for
325 
326  // ----- Summary part III:
327  //
328  s << "\nSeverity # Occurrences Total Occurrences\n"
329  << "-------- ------------- -----------------\n";
330  for (int k = 0; k < ELseverityLevel::nLevels; ++k) {
331  if (p3[k].n != 0 || p3[k].t != 0) {
332  s << left << std::setw(8) << ELseverityLevel(ELseverityLevel::ELsev_(k)).getName().c_str() << right
333  << std::setw(17) << p3[k].n << right << std::setw(20) << p3[k].t << '\n';
334  }
335  } // for
336 
337  return s.str();
338 
339  } // formSummary()
static std::set< std::string > groupedCategories
Definition: ELstatistics.h:103
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e g
Definition: Activities.doc:4
def cat(path)
Definition: eostools.py:401
int k[5][pyjets_maxn]
double p3[4]
Definition: TauolaWrapper.h:91
bool edm::service::ELstatistics::log ( const edm::ErrorObj msg)
overridevirtual

Reimplemented from edm::service::ELdestination.

Definition at line 150 of file ELstatistics.cc.

References MessageLogger_cfi::cerr, edm::ErrorObj::context(), edm::ELextendedID::module, edm::ErrorObj::reactedTo(), alignCSCRings::s, edm::ELextendedID::severity, stats, edm::service::summarizeContext(), tableLimit, edm::service::ELdestination::thisShouldBeIgnored(), edm::service::ELdestination::threshold, updatedStats, and edm::ErrorObj::xid().

150  {
151 #ifdef ELstatsLOG_TRACE
152  std::cerr << " =:=:=: Log to an ELstatistics\n";
153 #endif
154 
155  // See if this message is to be counted.
156 
157  if (msg.xid().severity < threshold)
158  return false;
159  if (thisShouldBeIgnored(msg.xid().module))
160  return false;
161 
162  // Account for this message, making a new table entry if needed:
163  //
164  ELmap_stats::iterator s = stats.find(msg.xid());
165  if (s == stats.end()) {
166  if (tableLimit < 0 || static_cast<int>(stats.size()) < tableLimit) {
167  stats[msg.xid()] = StatsCount();
168  s = stats.find(msg.xid());
169  }
170  }
171 #ifdef ELstatsLOG_TRACE
172  std::cerr << " =:=:=: Message accounted for in stats \n";
173 #endif
174  if (s != stats.end()) {
175  (*s).second.add(summarizeContext(msg.context()), msg.reactedTo());
176 
177  updatedStats = true;
178 #ifdef ELstatsLOG_TRACE
179  std::cerr << " =:=:=: Updated stats \n";
180 #endif
181  }
182 
183  // For the purposes of telling whether any log destination has reacted
184  // to the message, the statistics destination does not count:
185  //
186 
187 #ifdef ELstatsLOG_TRACE
188  std::cerr << " =:=:=: log(msg) done (stats) \n";
189 #endif
190 
191  return false;
192 
193  } // log()
static std::string summarizeContext(const std::string &c)
ELseverityLevel severity
Definition: ELextendedID.h:29
virtual bool thisShouldBeIgnored(const ELstring &s) const
const ELextendedID & xid() const
Definition: ErrorObj.cc:133
bool reactedTo() const
Definition: ErrorObj.cc:137
ELstring context() const
Definition: ErrorObj.cc:140
void edm::service::ELstatistics::noteGroupedCategory ( std::string const &  cat)
static

Definition at line 480 of file ELstatistics.cc.

References groupedCategories.

Referenced by edm::service::ThreadSafeLogMessageLoggerScribe::runCommand(), and edm::service::MessageLoggerScribe::runCommand().

480 { groupedCategories.insert(cat); }
static std::set< std::string > groupedCategories
Definition: ELstatistics.h:103
def cat(path)
Definition: eostools.py:401
void edm::service::ELstatistics::noTerminationSummary ( )

Definition at line 357 of file ELstatistics.cc.

References printAtTermination.

357 { printAtTermination = false; }
ELstatistics& edm::service::ELstatistics::operator= ( const ELstatistics orig)
privatedelete
std::map< ELextendedID, StatsCount > edm::service::ELstatistics::statisticsMap ( ) const
protected

Definition at line 359 of file ELstatistics.cc.

References stats.

359  {
360  return std::map<ELextendedID, StatsCount>(stats);
361  }
void edm::service::ELstatistics::summary ( unsigned long  overfullWaitCount)

Definition at line 347 of file ELstatistics.cc.

References formSummary(), stats, termStream, and updatedStats.

Referenced by ~ELstatistics().

347  {
348  termStream << "\n=============================================\n\n"
349  << "MessageLogger Summary" << std::endl
350  << formSummary(stats) << std::endl
351  << "dropped waiting message count " << overfullWaitCount << std::endl
352  << std::flush;
353  updatedStats = false;
354 
355  } // summary()
std::ostream & termStream
Definition: ELstatistics.h:99
static ELstring formSummary(ELmap_stats &stats)
void edm::service::ELstatistics::summary ( std::ostream &  os,
const ELstring title 
)
private

Definition at line 341 of file ELstatistics.cc.

References formSummary(), stats, and updatedStats.

341  {
342  os << title << std::endl << formSummary(stats) << std::flush;
343  updatedStats = false;
344 
345  } // summary()
static ELstring formSummary(ELmap_stats &stats)
void edm::service::ELstatistics::summaryForJobReport ( std::map< std::string, double > &  sm)

Definition at line 364 of file ELstatistics.cc.

References eostools::cat(), dualLogName(), g, edm::ELseverityLevel::getLevel(), edm::ELseverityLevel::getName(), edm::ELseverityLevel::getSymbol(), groupedCategories, mps_fire::i, gen::k, dttmaxenums::L, gen::n, edm::ELseverityLevel::nLevels, p3, alignCSCRings::s, edm::ELextendedID::severity, interestingDetIdCollectionProducer_cfi::severityLevel, stats, AlCaHLTBitMon_QueryRunRegistry::string, and protons_cff::t.

364  {
365  struct part3 {
366  long n, t;
367  part3() : n(0L), t(0L) { ; }
369 
370  std::set<std::string>::iterator gcEnd = groupedCategories.end();
371  std::set<std::string> gCats = groupedCategories; // TEMP FOR DEBUGGING SANITY
372 
373  // ----- Part I: The ungrouped categories
374  for (ELmap_stats::const_iterator i = stats.begin(); i != stats.end(); ++i) {
375  // If this is a grouped category, wait till later to output its stats
376  std::string cat = (*i).first.id;
377  if (groupedCategories.find(cat) != gcEnd) {
378  continue; // We will process these categories later
379  }
380 
381  // ----- Emit detailed message information:
382  //
383  std::ostringstream s;
384  s << "Category_";
385  std::string sevSymbol = (*i).first.severity.getSymbol();
386  if (sevSymbol[0] == '-')
387  sevSymbol = sevSymbol.substr(1);
388  s << sevSymbol << "_" << (*i).first.id;
389  int n = (*i).second.aggregateN;
390  std::string catstr = s.str();
391  if (sm.find(catstr) != sm.end()) {
392  sm[catstr] += n;
393  } else {
394  sm[catstr] = n;
395  }
396  // ----- Obtain information for Part III, below:
397  //
398  ELextendedID xid = (*i).first;
399  p3[xid.severity.getLevel()].n += (*i).second.n;
400  p3[xid.severity.getLevel()].t += (*i).second.aggregateN;
401  } // for i
402 
403  // ----- Part Ia: The grouped categories
404  for (std::set<std::string>::iterator g = groupedCategories.begin(); g != gcEnd; ++g) {
405  int groupTotal = 0;
406  int groupAggregateN = 0;
407  ELseverityLevel severityLevel;
408  for (ELmap_stats::const_iterator i = stats.begin(); i != stats.end(); ++i) {
409  if ((*i).first.id == *g) {
410  if (groupTotal == 0)
411  severityLevel = (*i).first.severity;
412  groupAggregateN += (*i).second.aggregateN;
413  ++groupTotal;
414  }
415  } // for i
416  if (groupTotal > 0) {
417  // ----- Emit detailed message information:
418  //
419  std::ostringstream s;
420  s << "Category_";
421  std::string sevSymbol = severityLevel.getSymbol();
422  if (sevSymbol[0] == '-')
423  sevSymbol = sevSymbol.substr(1);
424  s << sevSymbol << "_" << *g;
425  int n = groupAggregateN;
426  std::string catstr = s.str();
427  if (sm.find(catstr) != sm.end()) {
428  sm[catstr] += n;
429  } else {
430  sm[catstr] = n;
431  }
432 
433  // ----- Obtain information for Part III, below:
434  //
435  int lev = severityLevel.getLevel();
436  p3[lev].n += groupTotal;
437  p3[lev].t += groupAggregateN;
438  } // end if groupTotal>0
439  } // for g
440 
441  // part II (sample event numbers) does not exist for the job report.
442 
443  // ----- Summary part III:
444  //
445  for (int k = 0; k < ELseverityLevel::nLevels; ++k) {
446  //if ( p3[k].t != 0 ) {
447  if (true) {
448  std::string sevName;
449  sevName = ELseverityLevel(ELseverityLevel::ELsev_(k)).getName();
450  if (sevName == "Severe")
451  sevName = "System";
452  if (sevName == "Success")
453  sevName = "Debug";
454  sevName = std::string("Log") + sevName;
455  sevName = dualLogName(sevName);
456  if (sevName != "UnusedSeverity") {
457  sm[sevName] = p3[k].t;
458  }
459  }
460  } // for k
461 
462  } // summaryForJobReport()
static std::set< std::string > groupedCategories
Definition: ELstatistics.h:103
std::string dualLogName(std::string const &s)
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e g
Definition: Activities.doc:4
def cat(path)
Definition: eostools.py:401
int k[5][pyjets_maxn]
double p3[4]
Definition: TauolaWrapper.h:91
void edm::service::ELstatistics::wipe ( )
overridevirtual

Reimplemented from edm::service::ELdestination.

Definition at line 205 of file ELstatistics.cc.

References edm::service::ELdestination::limits, stats, and edm::service::ELlimitsTable::wipe().

205  {
206  limits.wipe();
207  stats.erase(stats.begin(), stats.end()); //stats.clear();
208 
209  } // wipe()
void edm::service::ELstatistics::zero ( )
overrideprotectedvirtual

Friends And Related Function Documentation

friend class ELadministrator
friend

Definition at line 51 of file ELstatistics.h.

Member Data Documentation

std::set< std::string > edm::service::ELstatistics::groupedCategories
staticprotected

Definition at line 103 of file ELstatistics.h.

Referenced by dualLogName(), formSummary(), noteGroupedCategory(), and summaryForJobReport().

bool edm::service::ELstatistics::printAtTermination
protected

Definition at line 101 of file ELstatistics.h.

Referenced by noTerminationSummary(), and ~ELstatistics().

ELmap_stats edm::service::ELstatistics::stats
protected

Definition at line 97 of file ELstatistics.h.

Referenced by clearSummary(), log(), statisticsMap(), summary(), summaryForJobReport(), and wipe().

int edm::service::ELstatistics::tableLimit
protected

Definition at line 96 of file ELstatistics.h.

Referenced by log().

std::ostream& edm::service::ELstatistics::termStream
protected

Definition at line 99 of file ELstatistics.h.

Referenced by summary(), and ~ELstatistics().

bool edm::service::ELstatistics::updatedStats
protected

Definition at line 98 of file ELstatistics.h.

Referenced by log(), summary(), and ~ELstatistics().