Jpp  19.1.0
the software that should make you happy
Public Member Functions | List of all members
KM3NETDAQ::JDataWriter::JRunDB Struct Reference

Map run number to trigger parameters. More...

Inheritance diagram for KM3NETDAQ::JDataWriter::JRunDB:
std::map< int, JValue_t >

Public Member Functions

void reset (const int run)
 Remove all entries before given run. More...
 
bool is_written (const int run) const
 Check if trigger parameters have been written for given run. More...
 
void read (const char *const data, const size_t size)
 Read trigger parameters. More...
 
void write (const int run, TFile *file)
 Write trigger parameters for given run if not yet done. More...
 

Detailed Description

Map run number to trigger parameters.

Definition at line 444 of file JDataWriter.cc.

Member Function Documentation

◆ reset()

void KM3NETDAQ::JDataWriter::JRunDB::reset ( const int  run)
inline

Remove all entries before given run.

Parameters
runrun number

Definition at line 452 of file JDataWriter.cc.

453  {
454  while (!this->empty() && this->begin()->first < run) {
455  this->erase(this->begin());
456  }
457  }
void run()
Run as run control client following command messages via JNET::JControlHost.
Definition: JDAQClient.hh:690

◆ is_written()

bool KM3NETDAQ::JDataWriter::JRunDB::is_written ( const int  run) const
inline

Check if trigger parameters have been written for given run.

Parameters
runrun number
Returns
true if written; else false.

Definition at line 465 of file JDataWriter.cc.

466  {
467  const_iterator p = this->find(run);
468 
469  return p != this->end() && p->second.is_written;
470  }

◆ read()

void KM3NETDAQ::JDataWriter::JRunDB::read ( const char *const  data,
const size_t  size 
)
inline

Read trigger parameters.

Parameters
datadata
sizesize

Definition at line 478 of file JDataWriter.cc.

479  {
480  using namespace std;
481  using namespace JPP;
482 
483 
484  const string buffer(data, size);
485 
486  istringstream in(buffer);
487 
488  int run = -1;
489  JTriggerParameters parameters;
490 
491  in >> run;
492 
493  if (!in) {
494  THROW(JIOException, "Error reading run number for trigger parameters " << run << endl << in.rdbuf());
495  }
496 
497  in >> parameters;
498 
499  in.clear(std::ios::eofbit);
500 
501  if (!in) {
502  THROW(JIOException, "Error reading trigger parameters " << in.rdbuf());
503  }
504 
505  JValue_t& value = (*this)[run];
506 
507  if (value.count == 0) {
508  value.parameters = parameters;
509  }
510 
511  value.count += 1;
512 
513  if (!parameters.equals(value.parameters)) {
514  THROW(JException, "Inconsistent trigger parameters " << endl << value.parameters << " != " << endl << parameters);
515  }
516  }
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message.
Definition: JException.hh:712
General exception.
Definition: JException.hh:24
Exception for I/O.
Definition: JException.hh:342
std::vector< char > buffer
internal buffer for incoming data
Definition: JDataWriter.cc:420
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
Definition: JSTDTypes.hh:14

◆ write()

void KM3NETDAQ::JDataWriter::JRunDB::write ( const int  run,
TFile *  file 
)
inline

Write trigger parameters for given run if not yet done.

Parameters
runrun number
filepointer to ROOT file

Definition at line 524 of file JDataWriter.cc.

525  {
526  if (file != NULL) {
527 
528  iterator p = this->find(run);
529 
530  if (p != this->end() && p->second.count != 0 && !p->second.is_written) {
531 
532  file->WriteTObject(&p->second.parameters);
533 
534  p->second.is_written = true;
535  }
536  }
537  }

The documentation for this struct was generated from the following file: