CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Classes | Public Types | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes
dqmservices::DQMFileIterator Class Reference

#include <DQMFileIterator.h>

Classes

struct  EorEntry
 
struct  LumiEntry
 

Public Types

enum  State { OPEN = 0, EOR_CLOSING = 1, EOR = 2 }
 

Public Member Functions

void advanceToLumi (unsigned int lumi, std::string reason)
 
void delay ()
 
 DQMFileIterator (edm::ParameterSet const &pset)
 
void initialise (int run, const std::string &, const std::string &)
 
unsigned int lastLumiFound ()
 
void logFileAction (const std::string &msg, const std::string &fileName="") const
 
void logLumiState (const LumiEntry &lumi, const std::string &msg)
 
bool lumiReady ()
 
LumiEntry open ()
 
void pop ()
 
void reset ()
 
unsigned int runNumber ()
 
State state ()
 
void update_state ()
 
 ~DQMFileIterator ()
 

Static Public Member Functions

static void fillDescription (edm::ParameterSetDescription &d)
 

Private Member Functions

void collect (bool ignoreTimers)
 
void monUpdateLumi (const LumiEntry &lumi)
 
unsigned mtimeHash () const
 

Private Attributes

unsigned int datafnPosition_
 
unsigned long delayMillis_
 
EorEntry eor_
 
std::unordered_set< std::string > filesSeen_
 
bool flagScanOnce_
 
long forceFileCheckTimeoutMillis_
 
std::chrono::high_resolution_clock::time_point lastLumiLoad_
 
std::map< unsigned int, LumiEntrylumiSeen_
 
edm::Service
< DQMMonitoringService
mon_
 
unsigned int nextLumiNumber_
 
long nextLumiTimeoutMillis_
 
std::string runInputDir_
 
unsigned int runNumber_
 
std::vector< std::string > runPath_
 
std::chrono::high_resolution_clock::time_point runPathLastCollect_
 
unsigned runPathMTime_
 
State state_
 
std::string streamLabel_
 

Detailed Description

Definition at line 18 of file DQMFileIterator.h.

Member Enumeration Documentation

Enumerator
OPEN 
EOR_CLOSING 
EOR 

Definition at line 50 of file DQMFileIterator.h.

50  {
51  OPEN = 0,
52  EOR_CLOSING = 1, // EoR file found, but lumis are still pending
53  EOR = 2,
54  };

Constructor & Destructor Documentation

dqmservices::DQMFileIterator::DQMFileIterator ( edm::ParameterSet const &  pset)

Definition at line 74 of file DQMFileIterator.cc.

References datafnPosition_, delayMillis_, flagScanOnce_, forceFileCheckTimeoutMillis_, edm::ParameterSet::getUntrackedParameter(), nextLumiTimeoutMillis_, reset(), runInputDir_, runNumber_, streamLabel_, and AlCaHLTBitMon_QueryRunRegistry::string.

74  : state_(EOR) {
75  runNumber_ = pset.getUntrackedParameter<unsigned int>("runNumber");
76  datafnPosition_ = pset.getUntrackedParameter<unsigned int>("datafnPosition");
77  runInputDir_ = pset.getUntrackedParameter<std::string>("runInputDir");
78  streamLabel_ = pset.getUntrackedParameter<std::string>("streamLabel");
79  delayMillis_ = pset.getUntrackedParameter<uint32_t>("delayMillis");
80  nextLumiTimeoutMillis_ = pset.getUntrackedParameter<int32_t>("nextLumiTimeoutMillis");
81 
82  // scan one mode
83  flagScanOnce_ = pset.getUntrackedParameter<bool>("scanOnce");
84 
86  reset();
87  }
dqmservices::DQMFileIterator::~DQMFileIterator ( )

Definition at line 89 of file DQMFileIterator.cc.

89 {}

Member Function Documentation

void dqmservices::DQMFileIterator::advanceToLumi ( unsigned int  lumi,
std::string  reason 
)

Definition at line 147 of file DQMFileIterator.cc.

References lastLumiLoad_, dqmdumpme::lumi, lumiSeen_, mon_, monUpdateLumi(), nextLumiNumber_, submitPVValidationJobs::now, PixelMapPlotter::reason, and str.

Referenced by open(), dqmservices::DQMStreamerReader::reset_(), and update_state().

147  {
148  using boost::str;
149  using boost::property_tree::ptree;
150 
151  unsigned int currentLumi = nextLumiNumber_;
152 
155 
156  auto iter = lumiSeen_.lower_bound(currentLumi);
157 
158  while ((iter != lumiSeen_.end()) && ((iter->first) < nextLumiNumber_)) {
159  iter->second.state = reason;
160  monUpdateLumi(iter->second);
161 
162  ++iter;
163  }
164 
165  if (mon_.isAvailable()) {
166  // report the successful lumi file open
167  ptree doc;
168  doc.put("next_lumi", nextLumiNumber_);
169  mon_->outputUpdate(doc);
170  }
171  }
edm::Service< DQMMonitoringService > mon_
std::map< unsigned int, LumiEntry > lumiSeen_
list lumi
Definition: dqmdumpme.py:53
std::chrono::high_resolution_clock::time_point lastLumiLoad_
void monUpdateLumi(const LumiEntry &lumi)
#define str(s)
void dqmservices::DQMFileIterator::collect ( bool  ignoreTimers)
private

Definition at line 197 of file DQMFileIterator.cc.

References submitPVResolutionJobs::count, datafnPosition_, alignCSCRings::e, eor_, cppFunctionSkipper::exception, lut2db_cfg::filename, filesSeen_, flagScanOnce_, personalPlayback::fn, forceFileCheckTimeoutMillis_, label, dqmservices::DQMFileIterator::LumiEntry::load_json(), dqmservices::DQMFileIterator::EorEntry::loaded, logFileAction(), dqmdumpme::lumi, lumiSeen_, monUpdateLumi(), mps_check::msg, mtimeHash(), dqmservices::DQMFileIterator::EorEntry::n_lumi, submitPVValidationJobs::now, or, mps_fire::result, submitPVValidationJobs::run, runNumber_, runPath_, runPathLastCollect_, runPathMTime_, streamLabel_, and AlCaHLTBitMon_QueryRunRegistry::string.

Referenced by reset(), and update_state().

197  {
198  // search filesystem to find available lumi section files
199  // or the end of run files
200 
202  auto last_ms = std::chrono::duration_cast<std::chrono::milliseconds>(now - runPathLastCollect_).count();
203 
204  // don't refresh if it's too soon
205  if ((!ignoreTimers) && (last_ms >= 0) && (last_ms < 100)) {
206  return;
207  }
208 
209  // check if directory changed
210  auto mtime_now = mtimeHash();
211 
212  if ((!ignoreTimers) && (last_ms < forceFileCheckTimeoutMillis_) && (mtime_now == runPathMTime_)) {
213  // logFileAction("Directory hasn't changed.");
214  return;
215  } else {
216  // logFileAction("Directory changed, updating.");
217  }
218 
219  runPathMTime_ = mtime_now;
221 
222  using std::filesystem::directory_entry;
223  using std::filesystem::directory_iterator;
224 
225  std::string fn_eor;
226 
227  for (const auto& runPath : runPath_) {
228  if (!std::filesystem::exists(runPath)) {
229  logFileAction("Directory does not exist: ", runPath);
230 
231  continue;
232  }
233 
234  directory_iterator dend;
235  for (directory_iterator di(runPath); di != dend; ++di) {
236  const boost::regex fn_re("run(\\d+)_ls(\\d+)_([a-zA-Z0-9]+)(_.*)?\\.jsn");
237 
238  const std::string filename = di->path().filename().string();
239  const std::string fn = di->path().string();
240 
241  if (filesSeen_.find(filename) != filesSeen_.end()) {
242  continue;
243  }
244 
245  boost::smatch result;
246  if (boost::regex_match(filename, result, fn_re)) {
247  unsigned int run = std::stoi(result[1]);
248  unsigned int lumi = std::stoi(result[2]);
249  std::string label = result[3];
250 
251  filesSeen_.insert(filename);
252 
253  if (run != runNumber_)
254  continue;
255 
256  // check if this is EoR
257  // for various reasons we have to load it after all other files
258  if ((lumi == 0) && (label == "EoR") && (!eor_.loaded)) {
259  fn_eor = fn;
260  continue;
261  }
262 
263  // check if lumi is loaded
264  if (lumiSeen_.find(lumi) != lumiSeen_.end()) {
265  continue; // already loaded
266  }
267 
268  // check if this belongs to us
269  if (label != streamLabel_) {
270  std::string msg("Found and skipped json file (stream label mismatch, ");
271  msg += label + " [files] != " + streamLabel_ + " [config]";
272  msg += "): ";
273  logFileAction(msg, fn);
274  continue;
275  }
276 
277  try {
278  LumiEntry lumi_jsn = LumiEntry::load_json(runPath, fn, lumi, datafnPosition_);
279  lumiSeen_.emplace(lumi, lumi_jsn);
280  logFileAction("Found and loaded json file: ", fn);
281 
282  monUpdateLumi(lumi_jsn);
283  } catch (const std::exception& e) {
284  // don't reset the mtime, keep it waiting
285  filesSeen_.erase(filename);
286 
287  std::string msg("Found, tried to load the json, but failed (");
288  msg += e.what();
289  msg += "): ";
290  logFileAction(msg, fn);
291  }
292  }
293  }
294  }
295 
296  if ((!fn_eor.empty()) or flagScanOnce_) {
297  if (!fn_eor.empty()) {
298  logFileAction("EoR file found: ", fn_eor);
299  }
300 
301  // @TODO load EoR files correctly
302  // eor_ = EorEntry::load_json(fn_eor);
303  // logFileAction("Loaded eor file: ", fn_eor);
304 
305  // for now , set n_lumi to the highest _found_ lumi
306  eor_.loaded = true;
307 
308  if (lumiSeen_.empty()) {
309  eor_.n_lumi = 0;
310  } else {
311  eor_.n_lumi = lumiSeen_.rbegin()->first;
312  }
313  }
314  }
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< void, edm::EventIDconst &, edm::Timestampconst & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
std::map< unsigned int, LumiEntry > lumiSeen_
static LumiEntry load_json(const std::string &run_path, const std::string &filename, int lumiNumber, int datafn_position)
tuple result
Definition: mps_fire.py:311
char const * label
std::vector< std::string > runPath_
void logFileAction(const std::string &msg, const std::string &fileName="") const
list lumi
Definition: dqmdumpme.py:53
tuple msg
Definition: mps_check.py:285
tuple filename
Definition: lut2db_cfg.py:20
void monUpdateLumi(const LumiEntry &lumi)
std::chrono::high_resolution_clock::time_point runPathLastCollect_
std::unordered_set< std::string > filesSeen_
void dqmservices::DQMFileIterator::delay ( )

Definition at line 390 of file DQMFileIterator.cc.

References delayMillis_, and mon_.

Referenced by dqmservices::DQMProtobufReader::getNextItemType(), dqmservices::DQMStreamerReader::prepareNextEvent(), and dqmservices::DQMStreamerReader::reset_().

390  {
391  if (mon_.isAvailable())
392  mon_->keepAlive();
393 
394  usleep(delayMillis_ * 1000);
395  }
edm::Service< DQMMonitoringService > mon_
void dqmservices::DQMFileIterator::fillDescription ( edm::ParameterSetDescription d)
static

Definition at line 397 of file DQMFileIterator.cc.

References edm::ParameterSetDescription::addUntracked(), and AlCaHLTBitMon_QueryRunRegistry::string.

Referenced by dqmservices::DQMProtobufReader::fillDescriptions(), and dqmservices::DQMStreamerReader::fillDescriptions().

397  {
398  desc.addUntracked<unsigned int>("runNumber")->setComment("Run number passed via configuration file.");
399 
400  desc.addUntracked<unsigned int>("datafnPosition", 3)
401  ->setComment(
402  "Data filename position in the positional arguments array 'data' in "
403  "json file.");
404 
405  desc.addUntracked<std::string>("streamLabel")->setComment("Stream label used in json discovery.");
406 
407  desc.addUntracked<uint32_t>("delayMillis")->setComment("Number of milliseconds to wait between file checks.");
408 
409  desc.addUntracked<int32_t>("nextLumiTimeoutMillis", -1)
410  ->setComment(
411  "Number of milliseconds to wait before switching to the next lumi "
412  "section if the current is missing, -1 to disable.");
413 
414  desc.addUntracked<bool>("scanOnce", false)
415  ->setComment(
416  "Don't repeat file scans: use what was found during the initial scan. "
417  "EOR file is ignored and the state is set to 'past end of run'.");
418 
419  desc.addUntracked<std::string>("runInputDir")->setComment("Directory where the DQM files will appear.");
420  }
void dqmservices::DQMFileIterator::initialise ( int  run,
const std::string &  ,
const std::string &   
)
unsigned int dqmservices::DQMFileIterator::lastLumiFound ( )

Definition at line 139 of file DQMFileIterator.cc.

References lumiSeen_.

Referenced by dqmservices::DQMStreamerReader::reset_().

139  {
140  if (!lumiSeen_.empty()) {
141  return lumiSeen_.rbegin()->first;
142  }
143 
144  return 1;
145  }
std::map< unsigned int, LumiEntry > lumiSeen_
void dqmservices::DQMFileIterator::logFileAction ( const std::string &  msg,
const std::string &  fileName = "" 
) const
void dqmservices::DQMFileIterator::logLumiState ( const LumiEntry lumi,
const std::string &  msg 
)

Definition at line 380 of file DQMFileIterator.cc.

References dqmservices::DQMFileIterator::LumiEntry::file_ls, logFileAction(), lumiSeen_, monUpdateLumi(), and mps_check::msg.

Referenced by dqmservices::DQMProtobufReader::beginLuminosityBlock(), dqmservices::DQMStreamerReader::closeFileImp_(), and dqmservices::DQMStreamerReader::openNextFileImp_().

380  {
381  if (lumiSeen_.find(lumi.file_ls) != lumiSeen_.end()) {
382  lumiSeen_[lumi.file_ls].state = msg;
383 
384  monUpdateLumi(lumiSeen_[lumi.file_ls]);
385  } else {
386  logFileAction("Internal error: referenced lumi is not the map.");
387  }
388  }
std::map< unsigned int, LumiEntry > lumiSeen_
void logFileAction(const std::string &msg, const std::string &fileName="") const
list lumi
Definition: dqmdumpme.py:53
tuple msg
Definition: mps_check.py:285
void monUpdateLumi(const LumiEntry &lumi)
bool dqmservices::DQMFileIterator::lumiReady ( )

Definition at line 129 of file DQMFileIterator.cc.

References lumiSeen_, and nextLumiNumber_.

Referenced by dqmservices::DQMProtobufReader::getNextItemType(), and dqmservices::DQMStreamerReader::prepareNextFile().

129  {
130  if (lumiSeen_.find(nextLumiNumber_) != lumiSeen_.end()) {
131  return true;
132  }
133 
134  return false;
135  }
std::map< unsigned int, LumiEntry > lumiSeen_
void dqmservices::DQMFileIterator::monUpdateLumi ( const LumiEntry lumi)
private

Definition at line 173 of file DQMFileIterator.cc.

References dqmservices::DQMFileIterator::LumiEntry::file_ls, mon_, and dqmservices::DQMFileIterator::LumiEntry::state.

Referenced by advanceToLumi(), collect(), and logLumiState().

173  {
174  if (!mon_.isAvailable())
175  return;
176 
177  ptree doc;
178  doc.put(fmt::sprintf("extra.lumi_seen.lumi%06d", lumi.file_ls), lumi.state);
179  mon_->outputUpdate(doc);
180  }
edm::Service< DQMMonitoringService > mon_
list lumi
Definition: dqmdumpme.py:53
unsigned dqmservices::DQMFileIterator::mtimeHash ( ) const
private

Definition at line 182 of file DQMFileIterator.cc.

References submitPVResolutionJobs::count, fed_dqm_sourceclient-live_cfg::path, and runPath_.

Referenced by collect().

182  {
183  unsigned mtime_now = 0;
184 
185  for (const auto& path : runPath_) {
186  if (!std::filesystem::exists(path))
187  continue;
188 
189  auto write_time = std::filesystem::last_write_time(path);
190  mtime_now =
191  mtime_now ^ std::chrono::duration_cast<std::chrono::microseconds>(write_time.time_since_epoch()).count();
192  }
193 
194  return mtime_now;
195  }
std::vector< std::string > runPath_
DQMFileIterator::LumiEntry dqmservices::DQMFileIterator::open ( )

Definition at line 123 of file DQMFileIterator.cc.

References advanceToLumi(), dqmdumpme::lumi, lumiSeen_, and nextLumiNumber_.

Referenced by dqmservices::DQMStreamerReader::openNextFileImp_(), and dqmservices::DQMProtobufReader::readLuminosityBlockAuxiliary_().

123  {
124  LumiEntry& lumi = lumiSeen_[nextLumiNumber_];
125  advanceToLumi(nextLumiNumber_ + 1, "open: file iterator");
126  return lumi;
127  }
std::map< unsigned int, LumiEntry > lumiSeen_
list lumi
Definition: dqmdumpme.py:53
void advanceToLumi(unsigned int lumi, std::string reason)
void dqmservices::DQMFileIterator::pop ( )
void dqmservices::DQMFileIterator::reset ( void  )

Definition at line 91 of file DQMFileIterator.cc.

References collect(), eor_, filesSeen_, lastLumiLoad_, dqmservices::DQMFileIterator::EorEntry::loaded, lumiSeen_, mon_, nextLumiNumber_, submitPVValidationJobs::now, runInputDir_, runNumber_, runPath_, submitPVValidationJobs::split(), state_, cond::impl::to_string(), unpackBuffers-CaloStage2::token, and update_state().

Referenced by DQMFileIterator().

91  {
92  runPath_.clear();
93 
94  std::vector<std::string> tokens;
95  boost::split(tokens, runInputDir_, boost::is_any_of(":"));
96 
97  for (const auto& token : tokens) {
98  runPath_.push_back(fmt::sprintf("%s/run%06d", token, runNumber_));
99  }
100 
101  eor_.loaded = false;
102  state_ = State::OPEN;
103  nextLumiNumber_ = 1;
104  lumiSeen_.clear();
105  filesSeen_.clear();
106 
108 
109  collect(true);
110  update_state();
111 
112  if (mon_.isAvailable()) {
113  ptree doc;
114  doc.put("run", runNumber_);
115  doc.put("next_lumi", nextLumiNumber_);
116  doc.put("fi_state", std::to_string(state_));
117  mon_->outputUpdate(doc);
118  }
119  }
edm::Service< DQMMonitoringService > mon_
std::string to_string(const V &value)
Definition: OMSAccess.h:71
std::map< unsigned int, LumiEntry > lumiSeen_
std::vector< std::string > runPath_
std::chrono::high_resolution_clock::time_point lastLumiLoad_
std::unordered_set< std::string > filesSeen_
void collect(bool ignoreTimers)
unsigned int dqmservices::DQMFileIterator::runNumber ( )
DQMFileIterator::State dqmservices::DQMFileIterator::state ( )
void dqmservices::DQMFileIterator::update_state ( )

Definition at line 316 of file DQMFileIterator.cc.

References advanceToLumi(), collect(), submitPVResolutionJobs::count, eor_, flagScanOnce_, lastLumiLoad_, dqmservices::DQMFileIterator::EorEntry::loaded, logFileAction(), lumiSeen_, mon_, mps_check::msg, dqmservices::DQMFileIterator::EorEntry::n_lumi, nextLumiNumber_, nextLumiTimeoutMillis_, submitPVValidationJobs::now, state_, AlCaHLTBitMon_QueryRunRegistry::string, and cond::impl::to_string().

Referenced by dqmservices::DQMProtobufReader::getNextItemType(), dqmservices::DQMStreamerReader::prepareNextFile(), reset(), and dqmservices::DQMStreamerReader::reset_().

316  {
317  using std::chrono::duration_cast;
318  using std::chrono::high_resolution_clock;
319  using std::chrono::milliseconds;
320 
321  State old_state = state_;
322 
323  // in scanOnce mode we don't do repeated scans
324  // whatever found at reset() is be used
325  if (!flagScanOnce_) {
326  collect(false);
327  }
328 
329  if ((state_ == State::OPEN) && (eor_.loaded)) {
330  state_ = State::EOR_CLOSING;
331  }
332 
333  // special case for missing lumi files
334  // skip to the next available, but after the timeout
335  if ((state_ != State::EOR) && (nextLumiTimeoutMillis_ >= 0)) {
336  auto iter = lumiSeen_.lower_bound(nextLumiNumber_);
337  if ((iter != lumiSeen_.end()) && iter->first != nextLumiNumber_) {
338  auto elapsed = high_resolution_clock::now() - lastLumiLoad_;
339  auto elapsed_ms = duration_cast<milliseconds>(elapsed).count();
340 
341  if (elapsed_ms >= nextLumiTimeoutMillis_) {
342  std::string msg("Timeout reached, skipping lumisection(s) ");
343  msg += std::to_string(nextLumiNumber_) + " .. " + std::to_string(iter->first - 1);
344  msg += ", nextLumiNumber_ is now " + std::to_string(iter->first);
346 
347  advanceToLumi(iter->first, "skipped: timeout");
348  }
349  }
350  }
351 
352  if (state_ == State::EOR_CLOSING) {
353  // check if we parsed all lumis
354  // n_lumi is both last lumi and the number of lumi
355  // since lumis are indexed from 1
356 
357  // after all lumi have been pop()'ed
358  // current lumi will become larger than the last lumi
359  if (nextLumiNumber_ > eor_.n_lumi) {
360  state_ = State::EOR;
361  }
362  }
363 
364  if (state_ != old_state) {
365  logFileAction("Streamer state changed: ", std::to_string(old_state) + "->" + std::to_string(state_));
366 
367  if (mon_) {
368  ptree doc;
369  doc.put("fi_state", std::to_string(state_));
370  mon_->outputUpdate(doc);
371  }
372  }
373  }
edm::Service< DQMMonitoringService > mon_
std::string to_string(const V &value)
Definition: OMSAccess.h:71
std::map< unsigned int, LumiEntry > lumiSeen_
void logFileAction(const std::string &msg, const std::string &fileName="") const
std::chrono::high_resolution_clock::time_point lastLumiLoad_
tuple msg
Definition: mps_check.py:285
void advanceToLumi(unsigned int lumi, std::string reason)
void collect(bool ignoreTimers)

Member Data Documentation

unsigned int dqmservices::DQMFileIterator::datafnPosition_
private

Definition at line 102 of file DQMFileIterator.h.

Referenced by collect(), and DQMFileIterator().

unsigned long dqmservices::DQMFileIterator::delayMillis_
private

Definition at line 96 of file DQMFileIterator.h.

Referenced by delay(), and DQMFileIterator().

EorEntry dqmservices::DQMFileIterator::eor_
private

Definition at line 105 of file DQMFileIterator.h.

Referenced by collect(), reset(), and update_state().

std::unordered_set<std::string> dqmservices::DQMFileIterator::filesSeen_
private

Definition at line 110 of file DQMFileIterator.h.

Referenced by collect(), and reset().

bool dqmservices::DQMFileIterator::flagScanOnce_
private

Definition at line 99 of file DQMFileIterator.h.

Referenced by collect(), DQMFileIterator(), and update_state().

long dqmservices::DQMFileIterator::forceFileCheckTimeoutMillis_
private

Definition at line 98 of file DQMFileIterator.h.

Referenced by collect(), and DQMFileIterator().

std::chrono::high_resolution_clock::time_point dqmservices::DQMFileIterator::lastLumiLoad_
private

Definition at line 118 of file DQMFileIterator.h.

Referenced by advanceToLumi(), reset(), and update_state().

std::map<unsigned int, LumiEntry> dqmservices::DQMFileIterator::lumiSeen_
private
edm::Service<DQMMonitoringService> dqmservices::DQMFileIterator::mon_
private

Definition at line 125 of file DQMFileIterator.h.

Referenced by advanceToLumi(), delay(), monUpdateLumi(), reset(), and update_state().

unsigned int dqmservices::DQMFileIterator::nextLumiNumber_
private

Definition at line 108 of file DQMFileIterator.h.

Referenced by advanceToLumi(), lumiReady(), open(), reset(), and update_state().

long dqmservices::DQMFileIterator::nextLumiTimeoutMillis_
private

Definition at line 97 of file DQMFileIterator.h.

Referenced by DQMFileIterator(), and update_state().

std::string dqmservices::DQMFileIterator::runInputDir_
private

Definition at line 94 of file DQMFileIterator.h.

Referenced by DQMFileIterator(), and reset().

unsigned int dqmservices::DQMFileIterator::runNumber_
private

Definition at line 93 of file DQMFileIterator.h.

Referenced by collect(), DQMFileIterator(), reset(), and runNumber().

std::vector<std::string> dqmservices::DQMFileIterator::runPath_
private

Definition at line 103 of file DQMFileIterator.h.

Referenced by collect(), mtimeHash(), and reset().

std::chrono::high_resolution_clock::time_point dqmservices::DQMFileIterator::runPathLastCollect_
private

Definition at line 115 of file DQMFileIterator.h.

Referenced by collect().

unsigned dqmservices::DQMFileIterator::runPathMTime_
private

Definition at line 114 of file DQMFileIterator.h.

Referenced by collect().

State dqmservices::DQMFileIterator::state_
private

Definition at line 106 of file DQMFileIterator.h.

Referenced by reset(), state(), and update_state().

std::string dqmservices::DQMFileIterator::streamLabel_
private

Definition at line 95 of file DQMFileIterator.h.

Referenced by collect(), and DQMFileIterator().