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 ()
 
ELstatisticsoperator= (const ELstatistics &orig)=delete
 
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 std::string &filename)
 
 ELdestination ()
 
 ELdestination (const ELdestination &orig)=delete
 
virtual void excludeModule (std::string const &moduleName)
 
virtual void filterModule (std::string const &moduleName)
 
virtual void finish ()
 
virtual void flush ()
 
virtual int getLineLength () const
 
virtual std::string getNewline () const
 
virtual void ignoreModule (std::string const &moduleName)
 
virtual void includeContext ()
 
virtual void includeModule ()
 
virtual void includeSerial ()
 
virtual void includeSubroutine ()
 
virtual void includeText ()
 
virtual void includeTime ()
 
ELdestinationoperator= (const ELdestination &orig)=delete
 
virtual void respondToModule (std::string const &moduleName)
 
virtual void separateEpilogue ()
 
virtual void separateTime ()
 
void setInterval (const std::string &s, int interval)
 
void setInterval (const messagelogger::ELseverityLevel &sv, int interval)
 
void setLimit (const std::string &s, int n)
 
void setLimit (const messagelogger::ELseverityLevel &sv, int n)
 
virtual int setLineLength (int len)
 
virtual void setTableLimit (int n)
 
void setThreshold (const messagelogger::ELseverityLevel &sv)
 
void setTimespan (const std::string &s, int n)
 
void setTimespan (const messagelogger::ELseverityLevel &sv, int n)
 
void setTraceThreshold (const messagelogger::ELseverityLevel &sv)
 
virtual void suppressContext ()
 
virtual void suppressModule ()
 
virtual void suppressSerial ()
 
virtual void suppressSubroutine ()
 
virtual void suppressText ()
 
virtual void suppressTime ()
 
virtual bool thisShouldBeIgnored (std::string const &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 std::string 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
 
std::string indent
 
ELlimitsTable limits
 
int lineLength
 
std::string newline
 
std::string preamble
 
bool respondToMostModules
 
std::unordered_set< std::string > respondToThese
 
messagelogger::ELseverityLevel threshold
 
messagelogger::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)
 
void summary (std::ostream &os, std::string_view title)
 

Friends

class ELadministrator
 

Detailed Description

Definition at line 49 of file ELstatistics.h.

Constructor & Destructor Documentation

◆ ELstatistics() [1/5]

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

Definition at line 75 of file ELstatistics.cc.

References DMR_cfg::cerr.

76  : ELdestination(),
77  tableLimit(-1),
78  stats(),
79  updatedStats(false),
81  printAtTermination(true) {
82 #ifdef ELstatisticsCONSTRUCTOR_TRACE
83  std::cerr << "Constructor for ELstatistics()\n";
84 #endif
85 
86  } // ELstatistics()
std::ostream & termStream
Definition: ELstatistics.h:93

◆ ELstatistics() [2/5]

edm::service::ELstatistics::ELstatistics ( std::ostream &  osp)

Definition at line 88 of file ELstatistics.cc.

References DMR_cfg::cerr.

89  : ELdestination(), tableLimit(-1), stats(), updatedStats(false), termStream(osp), printAtTermination(true) {
90 #ifdef ELstatisticsCONSTRUCTOR_TRACE
91  std::cerr << "Constructor for ELstatistics(osp)\n";
92 #endif
93 
94  } // ELstatistics()
std::ostream & termStream
Definition: ELstatistics.h:93

◆ ELstatistics() [3/5]

edm::service::ELstatistics::ELstatistics ( int  spaceLimit)

Definition at line 96 of file ELstatistics.cc.

References DMR_cfg::cerr.

97  : ELdestination(),
98  tableLimit(spaceLimit),
99  stats(),
100  updatedStats(false),
102  printAtTermination(true) {
103 #ifdef ELstatisticsCONSTRUCTOR_TRACE
104  std::cerr << "Constructor for ELstatistics(spaceLimit)\n";
105 #endif
106 
107  } // ELstatistics()
std::ostream & termStream
Definition: ELstatistics.h:93

◆ ELstatistics() [4/5]

edm::service::ELstatistics::ELstatistics ( int  spaceLimit,
std::ostream &  osp 
)

Definition at line 109 of file ELstatistics.cc.

References DMR_cfg::cerr.

110  : ELdestination(),
111  tableLimit(spaceLimit),
112  stats(),
113  updatedStats(false),
114  termStream(osp),
115  printAtTermination(true) {
116 #ifdef ELstatisticsCONSTRUCTOR_TRACE
117  std::cerr << "Constructor for ELstatistics(spaceLimit,osp)\n";
118 #endif
119 
120  } // ELstatistics()
std::ostream & termStream
Definition: ELstatistics.h:93

◆ ELstatistics() [5/5]

edm::service::ELstatistics::ELstatistics ( const ELstatistics orig)

Definition at line 122 of file ELstatistics.cc.

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

123  : ELdestination(),
124  tableLimit(orig.tableLimit),
125  stats(orig.stats),
126  updatedStats(orig.updatedStats),
127  termStream(orig.termStream),
128  printAtTermination(orig.printAtTermination) {
129 #ifdef ELstatisticsCONSTRUCTOR_TRACE
130  std::cerr << "Copy constructor for ELstatistics()\n";
131 #endif
132 
133  ignoreMostModules = orig.ignoreMostModules;
134  respondToThese = orig.respondToThese;
135  respondToMostModules = orig.respondToMostModules;
136  ignoreThese = orig.ignoreThese;
137 
138  } // ELstatistics()
std::unordered_set< std::string > ignoreThese
std::ostream & termStream
Definition: ELstatistics.h:93
std::unordered_set< std::string > respondToThese

◆ ~ELstatistics()

edm::service::ELstatistics::~ELstatistics ( )
override

Definition at line 140 of file ELstatistics.cc.

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

140  {
141 #ifdef ELstatisticsCONSTRUCTOR_TRACE
142  std::cerr << "Destructor for ELstatistics\n";
143 #endif
144 
146  summary(termStream, "Termination Summary");
147 
148  } // ~ELstatistics()
std::ostream & termStream
Definition: ELstatistics.h:93
void summary(unsigned long overfullWaitCount)

Member Function Documentation

◆ clearSummary()

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

Definition at line 199 of file ELstatistics.cc.

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

199  {
200  limits.zero();
201  ELmap_stats::iterator s;
202  for (s = stats.begin(); s != stats.end(); ++s) {
203  (*s).second.n = 0;
204  (*s).second.context1 = (*s).second.context2 = (*s).second.contextLast = "";
205  }
206 
207  } // clearSummary()

◆ dualLogName()

std::string edm::service::ELstatistics::dualLogName ( std::string const &  s)
private

Definition at line 468 of file ELstatistics.cc.

References alignCSCRings::s.

Referenced by summaryForJobReport().

468  {
469  if (s == "LogDebug")
470  return "LogDebug_LogTrace";
471  if (s == "LogInfo")
472  return "LogInfo_LogVerbatim";
473  if (s == "LogWarning")
474  return "LogWarnng_LogPrint";
475  if (s == "LogError")
476  return "LogError_LogProblem";
477  if (s == "LogSystem")
478  return "LogSystem_LogAbsolute";
479  return "UnusedSeverity";
480  }

◆ formSummary()

std::string edm::service::ELstatistics::formSummary ( ELmap_stats stats)
staticprotected

Definition at line 217 of file ELstatistics.cc.

References eostools::cat(), g, edm::messagelogger::ELseverityLevel::getLevel(), edm::ELseverityLevel::getName(), groupedCategories, mps_fire::i, dqmdumpme::k, dttmaxenums::L, dqmiodumpmetadata::n, edm::ELseverityLevel::nLevels, chargedHadronTrackResolutionFilter_cfi::p3, alignCSCRings::s, edm::ELextendedID::severity, interestingDetIdCollectionProducer_cfi::severityLevel, stats, AlCaHLTBitMon_QueryRunRegistry::string, and submitPVValidationJobs::t.

Referenced by summary().

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

◆ log()

bool edm::service::ELstatistics::log ( const edm::ErrorObj msg)
overridevirtual

Reimplemented from edm::service::ELdestination.

Definition at line 154 of file ELstatistics.cc.

References DMR_cfg::cerr, mps_check::msg, alignCSCRings::s, stats, tableLimit, edm::service::ELdestination::thisShouldBeIgnored(), edm::service::ELdestination::threshold, and updatedStats.

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

◆ noteGroupedCategory()

void edm::service::ELstatistics::noteGroupedCategory ( std::string const &  cat)
static

Definition at line 484 of file ELstatistics.cc.

References eostools::cat(), and groupedCategories.

Referenced by edm::service::ThreadSafeLogMessageLoggerScribe::runCommand().

484 { groupedCategories.insert(cat); }
static std::set< std::string > groupedCategories
Definition: ELstatistics.h:97
def cat(path)
Definition: eostools.py:401

◆ noTerminationSummary()

void edm::service::ELstatistics::noTerminationSummary ( )

Definition at line 361 of file ELstatistics.cc.

References printAtTermination.

361 { printAtTermination = false; }

◆ operator=()

ELstatistics& edm::service::ELstatistics::operator= ( const ELstatistics orig)
delete

◆ statisticsMap()

std::map< ELextendedID, StatsCount > edm::service::ELstatistics::statisticsMap ( ) const
protected

Definition at line 363 of file ELstatistics.cc.

References stats.

363  {
364  return std::map<ELextendedID, StatsCount>(stats);
365  }

◆ summary() [1/2]

void edm::service::ELstatistics::summary ( unsigned long  overfullWaitCount)

Definition at line 351 of file ELstatistics.cc.

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

Referenced by ~ELstatistics().

351  {
352  termStream << "\n=============================================\n\n"
353  << "MessageLogger Summary" << std::endl
354  << formSummary(stats) << std::endl
355  << "dropped waiting message count " << overfullWaitCount << std::endl
356  << std::flush;
357  updatedStats = false;
358 
359  } // summary()
std::ostream & termStream
Definition: ELstatistics.h:93
static std::string formSummary(ELmap_stats &stats)

◆ summary() [2/2]

void edm::service::ELstatistics::summary ( std::ostream &  os,
std::string_view  title 
)
private

Definition at line 345 of file ELstatistics.cc.

References formSummary(), stats, runGCPTkAlMap::title, and updatedStats.

345  {
346  os << title << std::endl << formSummary(stats) << std::flush;
347  updatedStats = false;
348 
349  } // summary()
static std::string formSummary(ELmap_stats &stats)

◆ summaryForJobReport()

void edm::service::ELstatistics::summaryForJobReport ( std::map< std::string, double > &  sm)

Definition at line 368 of file ELstatistics.cc.

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

368  {
369  struct part3 {
370  long n, t;
371  part3() : n(0L), t(0L) { ; }
373 
374  std::set<std::string>::iterator gcEnd = groupedCategories.end();
375  std::set<std::string> gCats = groupedCategories; // TEMP FOR DEBUGGING SANITY
376 
377  // ----- Part I: The ungrouped categories
378  for (ELmap_stats::const_iterator i = stats.begin(); i != stats.end(); ++i) {
379  // If this is a grouped category, wait till later to output its stats
380  std::string cat = (*i).first.id;
381  if (groupedCategories.find(cat) != gcEnd) {
382  continue; // We will process these categories later
383  }
384 
385  // ----- Emit detailed message information:
386  //
387  std::ostringstream s;
388  s << "Category_";
389  std::string sevSymbol = (*i).first.severity.getSymbol();
390  if (sevSymbol[0] == '-')
391  sevSymbol = sevSymbol.substr(1);
392  s << sevSymbol << "_" << (*i).first.id;
393  int n = (*i).second.aggregateN;
394  std::string catstr = s.str();
395  if (sm.find(catstr) != sm.end()) {
396  sm[catstr] += n;
397  } else {
398  sm[catstr] = n;
399  }
400  // ----- Obtain information for Part III, below:
401  //
402  ELextendedID xid = (*i).first;
403  p3[xid.severity.getLevel()].n += (*i).second.n;
404  p3[xid.severity.getLevel()].t += (*i).second.aggregateN;
405  } // for i
406 
407  // ----- Part Ia: The grouped categories
408  for (std::set<std::string>::iterator g = groupedCategories.begin(); g != gcEnd; ++g) {
409  int groupTotal = 0;
410  int groupAggregateN = 0;
412  for (ELmap_stats::const_iterator i = stats.begin(); i != stats.end(); ++i) {
413  if ((*i).first.id == *g) {
414  if (groupTotal == 0)
415  severityLevel = (*i).first.severity;
416  groupAggregateN += (*i).second.aggregateN;
417  ++groupTotal;
418  }
419  } // for i
420  if (groupTotal > 0) {
421  // ----- Emit detailed message information:
422  //
423  std::ostringstream s;
424  s << "Category_";
425  std::string sevSymbol = severityLevel.getSymbol();
426  if (sevSymbol[0] == '-')
427  sevSymbol = sevSymbol.substr(1);
428  s << sevSymbol << "_" << *g;
429  int n = groupAggregateN;
430  std::string catstr = s.str();
431  if (sm.find(catstr) != sm.end()) {
432  sm[catstr] += n;
433  } else {
434  sm[catstr] = n;
435  }
436 
437  // ----- Obtain information for Part III, below:
438  //
439  int lev = severityLevel.getLevel();
440  p3[lev].n += groupTotal;
441  p3[lev].t += groupAggregateN;
442  } // end if groupTotal>0
443  } // for g
444 
445  // part II (sample event numbers) does not exist for the job report.
446 
447  // ----- Summary part III:
448  //
449  for (int k = 0; k < ELseverityLevel::nLevels; ++k) {
450  //if ( p3[k].t != 0 ) {
451  if (true) {
452  std::string sevName;
454  if (sevName == "Severe")
455  sevName = "System";
456  if (sevName == "Success")
457  sevName = "Debug";
458  sevName = std::string("Log") + sevName;
459  sevName = dualLogName(sevName);
460  if (sevName != "UnusedSeverity") {
461  sm[sevName] = p3[k].t;
462  }
463  }
464  } // for k
465 
466  } // summaryForJobReport()
static std::set< std::string > groupedCategories
Definition: ELstatistics.h:97
std::string dualLogName(std::string const &s)
const std::string & getName() const
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

◆ wipe()

void edm::service::ELstatistics::wipe ( )
overridevirtual

Reimplemented from edm::service::ELdestination.

Definition at line 209 of file ELstatistics.cc.

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

209  {
210  limits.wipe();
211  stats.erase(stats.begin(), stats.end()); //stats.clear();
212 
213  } // wipe()

◆ zero()

void edm::service::ELstatistics::zero ( )
overrideprotectedvirtual

Friends And Related Function Documentation

◆ ELadministrator

friend class ELadministrator
friend

Definition at line 50 of file ELstatistics.h.

Member Data Documentation

◆ groupedCategories

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

Definition at line 97 of file ELstatistics.h.

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

◆ printAtTermination

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

Definition at line 95 of file ELstatistics.h.

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

◆ stats

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

◆ tableLimit

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

Definition at line 90 of file ELstatistics.h.

Referenced by log().

◆ termStream

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

Definition at line 93 of file ELstatistics.h.

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

◆ updatedStats

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

Definition at line 92 of file ELstatistics.h.

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