CMS 3D CMS Logo

List of all members | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes
edm::StreamerFileReader Class Reference

#include <StreamerFileReader.h>

Inheritance diagram for edm::StreamerFileReader:
edm::StreamerInputSource edm::RawInputSource edm::InputSource edm::ProductRegistryHelper

Public Member Functions

InitMsgView const * getHeader ()
 
EventMsgView const * getNextEvent ()
 
bool newHeader ()
 
 StreamerFileReader (ParameterSet const &pset, InputSourceDescription const &desc)
 
virtual ~StreamerFileReader ()
 
- Public Member Functions inherited from edm::StreamerInputSource
void deserializeAndMergeWithRegistry (InitMsgView const &initView, bool subsequent=false)
 
void deserializeEvent (EventMsgView const &eventView)
 
std::unique_ptr< SendJobHeaderdeserializeRegistry (InitMsgView const &initView)
 
 StreamerInputSource (ParameterSet const &pset, InputSourceDescription const &desc)
 
virtual ~StreamerInputSource ()
 
- Public Member Functions inherited from edm::RawInputSource
 RawInputSource (ParameterSet const &pset, InputSourceDescription const &desc)
 
virtual ~RawInputSource ()
 
- Public Member Functions inherited from edm::InputSource
std::shared_ptr< ActivityRegistryactReg () const
 Accessor for Activity Registry. More...
 
std::shared_ptr< BranchIDListHelper const > branchIDListHelper () const
 Accessors for branchIDListHelper. More...
 
std::shared_ptr< BranchIDListHelper > & branchIDListHelper ()
 
void closeFile (FileBlock *, bool cleaningUpAfterException)
 close current file More...
 
void doBeginJob ()
 Called by framework at beginning of job. More...
 
void doBeginLumi (LuminosityBlockPrincipal &lbp, ProcessContext const *)
 Called by framework at beginning of lumi block. More...
 
void doBeginRun (RunPrincipal &rp, ProcessContext const *)
 Called by framework at beginning of run. More...
 
void doEndJob ()
 Called by framework at end of job. More...
 
void doEndLumi (LuminosityBlockPrincipal &lbp, bool cleaningUpAfterException, ProcessContext const *)
 Called by framework at end of lumi block. More...
 
void doEndRun (RunPrincipal &rp, bool cleaningUpAfterException, ProcessContext const *)
 Called by framework at end of run. More...
 
void doPostForkReacquireResources (std::shared_ptr< multicore::MessageReceiverForSource >)
 
void doPreForkReleaseResources ()
 Called by the framework before forking the process. More...
 
ProcessingController::ForwardState forwardState () const
 
bool goToEvent (EventID const &eventID)
 
 InputSource (ParameterSet const &, InputSourceDescription const &)
 Constructor. More...
 
 InputSource (InputSource const &)=delete
 
void issueReports (EventID const &eventID)
 issue an event report More...
 
LuminosityBlockNumber_t luminosityBlock () const
 Accessor for current luminosity block number. More...
 
std::shared_ptr< LuminosityBlockAuxiliaryluminosityBlockAuxiliary () const
 Called by the framework to merge or insert lumi in principal cache. More...
 
int maxEvents () const
 
int maxLuminosityBlocks () const
 
ModuleDescription const & moduleDescription () const
 Accessor for 'module' description. More...
 
ItemType nextItemType ()
 Advances the source to the next item. More...
 
InputSourceoperator= (InputSource const &)=delete
 
ProcessConfiguration const & processConfiguration () const
 Accessor for Process Configuration. More...
 
std::string const & processGUID () const
 Accessor for global process identifier. More...
 
ProcessHistoryRegistry const & processHistoryRegistry () const
 Accessors for process history registry. More...
 
ProcessHistoryRegistryprocessHistoryRegistry ()
 
ProcessingMode processingMode () const
 RunsLumisAndEvents (default), RunsAndLumis, or Runs. More...
 
std::shared_ptr< ProductRegistry const > productRegistry () const
 Accessors for product registry. More...
 
std::shared_ptr< ProductRegistry > & productRegistry ()
 
bool randomAccess () const
 
void readAndMergeLumi (LuminosityBlockPrincipal &lbp)
 Read next luminosity block (same as a prior lumi) More...
 
void readAndMergeRun (RunPrincipal &rp)
 Read next run (same as a prior run) More...
 
void readEvent (EventPrincipal &ep, StreamContext &)
 Read next event. More...
 
bool readEvent (EventPrincipal &ep, EventID const &, StreamContext &)
 Read a specific event. More...
 
std::unique_ptr< FileBlockreadFile ()
 Read next file. More...
 
void readLuminosityBlock (LuminosityBlockPrincipal &lumiPrincipal, HistoryAppender &historyAppender)
 Read next luminosity block (new lumi) More...
 
std::shared_ptr< LuminosityBlockAuxiliaryreadLuminosityBlockAuxiliary ()
 Read next luminosity block Auxilary. More...
 
void readRun (RunPrincipal &runPrincipal, HistoryAppender &historyAppender)
 Read next run (new run) More...
 
std::shared_ptr< RunAuxiliaryreadRunAuxiliary ()
 Read next run Auxiliary. More...
 
ProcessHistoryID const & reducedProcessHistoryID () const
 
void registerProducts ()
 Register any produced products. More...
 
int remainingEvents () const
 
int remainingLuminosityBlocks () const
 
void repeat ()
 Reset the remaining number of events/lumis to the maximum number. More...
 
std::pair< SharedResourcesAcquirer *, std::recursive_mutex * > resourceSharedWithDelayedReader ()
 Returns nullptr if no resource shared between the Source and a DelayedReader. More...
 
ProcessingController::ReverseState reverseState () const
 
void rewind ()
 Begin again at the first event. More...
 
RunNumber_t run () const
 Accessor for current run number. More...
 
std::shared_ptr< RunAuxiliaryrunAuxiliary () const
 Called by the framework to merge or insert run in principal cache. More...
 
void setLuminosityBlockNumber_t (LuminosityBlockNumber_t lb)
 Set the luminosity block ID. More...
 
void setRunNumber (RunNumber_t r)
 Set the run number. More...
 
void skipEvents (int offset)
 
bool skipForForking ()
 
std::shared_ptr< ThinnedAssociationsHelper const > thinnedAssociationsHelper () const
 Accessors for thinnedAssociationsHelper. More...
 
std::shared_ptr< ThinnedAssociationsHelper > & thinnedAssociationsHelper ()
 
Timestamp const & timestamp () const
 Accessor for the current time, as seen by the input source. More...
 
virtual ~InputSource () noexcept(false)
 Destructor. More...
 

Static Public Member Functions

static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
- Static Public Member Functions inherited from edm::StreamerInputSource
static void fillDescription (ParameterSetDescription &description)
 
static void mergeIntoRegistry (SendJobHeader const &header, ProductRegistry &, BranchIDListHelper &, ThinnedAssociationsHelper &, bool subsequent)
 
static unsigned int uncompressBuffer (unsigned char *inputBuffer, unsigned int inputSize, std::vector< unsigned char > &outputBuffer, unsigned int expectedFullSize)
 
- Static Public Member Functions inherited from edm::RawInputSource
static void fillDescription (ParameterSetDescription &description)
 
- Static Public Member Functions inherited from edm::InputSource
static const std::string & baseType ()
 
static void fillDescription (ParameterSetDescription &desc)
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &)
 

Private Member Functions

virtual bool checkNextEvent () override
 
std::shared_ptr< EventSkipperByID const > eventSkipperByID () const
 
std::shared_ptr< EventSkipperByID > & eventSkipperByID ()
 
virtual void genuineCloseFile () override
 
virtual void reset_ () override
 
virtual void skip (int toSkip) override
 

Private Attributes

edm::propagate_const< std::shared_ptr< EventSkipperByID > > eventSkipperByID_
 
int initialNumberOfEventsToSkip_
 
std::vector< std::string > streamerNames_
 
edm::propagate_const< std::unique_ptr< StreamerInputFile > > streamReader_
 

Additional Inherited Members

- Public Types inherited from edm::InputSource
enum  ItemType {
  IsInvalid, IsStop, IsFile, IsRun,
  IsLumi, IsEvent, IsRepeat, IsSynchronize
}
 
enum  ProcessingMode { Runs, RunsAndLumis, RunsLumisAndEvents }
 
typedef ProductRegistryHelper::TypeLabelList TypeLabelList
 
- Public Attributes inherited from edm::InputSource
signalslot::Signal< void(StreamContext const &, ModuleCallingContext const &)> postEventReadFromSourceSignal_
 
signalslot::Signal< void(StreamContext const &, ModuleCallingContext const &)> preEventReadFromSourceSignal_
 
- Protected Member Functions inherited from edm::StreamerInputSource
void resetAfterEndRun ()
 
- Protected Member Functions inherited from edm::RawInputSource
void makeEvent (EventPrincipal &eventPrincipal, EventAuxiliary const &eventAuxiliary)
 
void setInputFileTransitionsEachEvent ()
 
- Protected Member Functions inherited from edm::InputSource
void decreaseRemainingEventsBy (int iSkipped)
 
bool eventCached () const
 
bool newLumi () const
 
bool newRun () const
 
ProcessHistoryRegistryprocessHistoryRegistryForUpdate ()
 
ProductRegistryproductRegistryUpdate ()
 
void reset () const
 
void resetEventCached ()
 
void resetLuminosityBlockAuxiliary (bool isNewLumi=true) const
 
void resetNewLumi ()
 
void resetNewRun ()
 
void resetRunAuxiliary (bool isNewRun=true) const
 
void setEventCached ()
 Called by the framework to merge or ached() const {return eventCached_;}. More...
 
void setLuminosityBlockAuxiliary (LuminosityBlockAuxiliary *lbp)
 
void setNewLumi ()
 
void setNewRun ()
 
void setRunAuxiliary (RunAuxiliary *rp)
 
void setTimestamp (Timestamp const &theTime)
 To set the current time, as seen by the input source. More...
 
ItemType state () const
 
- Static Protected Member Functions inherited from edm::StreamerInputSource
static void buildClassCache (SendDescs const &descs)
 
static void declareStreamers (SendDescs const &descs)
 

Detailed Description

Definition at line 21 of file StreamerFileReader.h.

Constructor & Destructor Documentation

edm::StreamerFileReader::StreamerFileReader ( ParameterSet const &  pset,
InputSourceDescription const &  desc 
)

Definition at line 14 of file StreamerFileReader.cc.

References getEcalConditions_orcoffint2r_cff::catalog, edm::InputFileCatalog::fileNames(), edm::ParameterSet::getUntrackedParameter(), reset_(), streamerNames_, and AlCaHLTBitMon_QueryRunRegistry::string.

14  :
16  streamerNames_(pset.getUntrackedParameter<std::vector<std::string> >("fileNames")),
17  streamReader_(),
19  initialNumberOfEventsToSkip_(pset.getUntrackedParameter<unsigned int>("skipEvents")) {
20  InputFileCatalog catalog(pset.getUntrackedParameter<std::vector<std::string> >("fileNames"), pset.getUntrackedParameter<std::string>("overrideCatalog"));
21  streamerNames_ = catalog.fileNames();
22  reset_();
23 
24  }
static std::unique_ptr< EventSkipperByID > create(ParameterSet const &pset)
StreamerInputSource(ParameterSet const &pset, InputSourceDescription const &desc)
edm::propagate_const< std::unique_ptr< StreamerInputFile > > streamReader_
std::vector< std::string > streamerNames_
edm::propagate_const< std::shared_ptr< EventSkipperByID > > eventSkipperByID_
virtual void reset_() override
edm::StreamerFileReader::~StreamerFileReader ( )
virtual

Definition at line 26 of file StreamerFileReader.cc.

26  {
27  }

Member Function Documentation

bool edm::StreamerFileReader::checkNextEvent ( )
overrideprivatevirtual

Implements edm::RawInputSource.

Definition at line 47 of file StreamerFileReader.cc.

References edm::StreamerInputSource::deserializeAndMergeWithRegistry(), edm::StreamerInputSource::deserializeEvent(), getHeader(), getNextEvent(), RecoTauValidation_cfi::header, and newHeader().

47  {
48  EventMsgView const* eview = getNextEvent();
49 
50  if (newHeader()) {
51  // FDEBUG(6) << "A new file has been opened and we must compare Headers here !!" << std::endl;
52  // A new file has been opened and we must compare Heraders here !!
53  //Get header/init from reader
54  InitMsgView const* header = getHeader();
55  deserializeAndMergeWithRegistry(*header, true);
56  }
57  if (eview == nullptr) {
58  return false;
59  }
60  deserializeEvent(*eview);
61  return true;
62  }
void deserializeEvent(EventMsgView const &eventView)
InitMsgView const * getHeader()
void deserializeAndMergeWithRegistry(InitMsgView const &initView, bool subsequent=false)
EventMsgView const * getNextEvent()
std::shared_ptr<EventSkipperByID const> edm::StreamerFileReader::eventSkipperByID ( ) const
inlineprivate

Definition at line 37 of file StreamerFileReader.h.

References eventSkipperByID_, and edm::get_underlying_safe().

Referenced by reset_().

std::shared_ptr< T > & get_underlying_safe(propagate_const< std::shared_ptr< T >> &iP)
edm::propagate_const< std::shared_ptr< EventSkipperByID > > eventSkipperByID_
std::shared_ptr<EventSkipperByID>& edm::StreamerFileReader::eventSkipperByID ( )
inlineprivate

Definition at line 38 of file StreamerFileReader.h.

References eventSkipperByID_, and edm::get_underlying_safe().

std::shared_ptr< T > & get_underlying_safe(propagate_const< std::shared_ptr< T >> &iP)
edm::propagate_const< std::shared_ptr< EventSkipperByID > > eventSkipperByID_
void edm::StreamerFileReader::fillDescriptions ( ConfigurationDescriptions descriptions)
static

Definition at line 110 of file StreamerFileReader.cc.

References edm::ConfigurationDescriptions::add(), edm::ParameterSetDescription::addUntracked(), edm::EventSkipperByID::fillDescription(), edm::StreamerInputSource::fillDescription(), edm::ParameterSetDescription::setComment(), AlCaHLTBitMon_QueryRunRegistry::string, and mitigatedMETSequence_cff::U.

110  {
112  desc.setComment("Reads events from streamer files.");
113  desc.addUntracked<std::vector<std::string> >("fileNames")
114  ->setComment("Names of files to be processed.");
115  desc.addUntracked<unsigned int>("skipEvents", 0U)
116  ->setComment("Skip the first 'skipEvents' events that otherwise would have been processed.");
117  desc.addUntracked<std::string>("overrideCatalog", std::string());
118  //This next parameter is read in the base class, but its default value depends on the derived class, so it is set here.
119  desc.addUntracked<bool>("inputFileTransitionsEachEvent", false);
122  descriptions.add("source", desc);
123  }
static void fillDescription(ParameterSetDescription &description)
static void fillDescription(ParameterSetDescription &desc)
void edm::StreamerFileReader::genuineCloseFile ( )
overrideprivatevirtual

Reimplemented from edm::RawInputSource.

Definition at line 79 of file StreamerFileReader.cc.

References streamReader_.

79  {
80  if(streamReader_.get() != nullptr) streamReader_->closeStreamerFile();
81  }
edm::propagate_const< std::unique_ptr< StreamerInputFile > > streamReader_
InitMsgView const * edm::StreamerFileReader::getHeader ( )

Definition at line 89 of file StreamerFileReader.cc.

References InitMsgView::code(), Exception, edm::errors::FileReadError, RecoTauValidation_cfi::header, Header::INIT, and streamReader_.

Referenced by checkNextEvent(), and reset_().

89  {
90 
91  InitMsgView const* header = streamReader_->startMessage();
92 
93  if(header->code() != Header::INIT) { //INIT Msg
94  throw Exception(errors::FileReadError, "StreamerFileReader::readHeader")
95  << "received wrong message type: expected INIT, got "
96  << header->code() << "\n";
97  }
98  return header;
99  }
edm::propagate_const< std::unique_ptr< StreamerInputFile > > streamReader_
uint32 code() const
Definition: InitMessage.h:72
EventMsgView const * edm::StreamerFileReader::getNextEvent ( )

Definition at line 102 of file StreamerFileReader.cc.

References streamReader_.

Referenced by checkNextEvent(), and skip().

102  {
103  if (!streamReader_->next()) {
104  return nullptr;
105  }
106  return streamReader_->currentRecord();
107  }
edm::propagate_const< std::unique_ptr< StreamerInputFile > > streamReader_
bool edm::StreamerFileReader::newHeader ( )

Definition at line 84 of file StreamerFileReader.cc.

References streamReader_.

Referenced by checkNextEvent().

84  {
85  return streamReader_->newHeader();
86  }
edm::propagate_const< std::unique_ptr< StreamerInputFile > > streamReader_
void edm::StreamerFileReader::reset_ ( )
overrideprivatevirtual

Reimplemented from edm::RawInputSource.

Definition at line 30 of file StreamerFileReader.cc.

References edm::StreamerInputSource::deserializeAndMergeWithRegistry(), eventSkipperByID(), Exception, edm::errors::FileReadError, getHeader(), RecoTauValidation_cfi::header, initialNumberOfEventsToSkip_, skip(), streamerNames_, and streamReader_.

Referenced by StreamerFileReader().

30  {
31  if (streamerNames_.size() > 1) {
32  streamReader_ = std::make_unique<StreamerInputFile>(streamerNames_, eventSkipperByID());
33  } else if (streamerNames_.size() == 1) {
34  streamReader_ = std::make_unique<StreamerInputFile>(streamerNames_.at(0), eventSkipperByID());
35  } else {
36  throw Exception(errors::FileReadError, "StreamerFileReader::StreamerFileReader")
37  << "No fileNames were specified\n";
38  }
39  InitMsgView const* header = getHeader();
40  deserializeAndMergeWithRegistry(*header, false);
43  }
44  }
std::shared_ptr< EventSkipperByID const > eventSkipperByID() const
edm::propagate_const< std::unique_ptr< StreamerInputFile > > streamReader_
InitMsgView const * getHeader()
virtual void skip(int toSkip) override
std::vector< std::string > streamerNames_
void deserializeAndMergeWithRegistry(InitMsgView const &initView, bool subsequent=false)
void edm::StreamerFileReader::skip ( int  toSkip)
overrideprivatevirtual

Reimplemented from edm::InputSource.

Definition at line 65 of file StreamerFileReader.cc.

References EventMsgView::event(), eventSkipperByID_, getNextEvent(), mps_fire::i, EventMsgView::lumi(), and EventMsgView::run().

Referenced by reset_().

65  {
66  for(int i = 0; i != toSkip; ++i) {
67  EventMsgView const* evMsg = getNextEvent();
68  if(evMsg == nullptr) {
69  return;
70  }
71  // If the event would have been skipped anyway, don't count it as a skipped event.
72  if(eventSkipperByID_ && eventSkipperByID_->skipIt(evMsg->run(), evMsg->lumi(), evMsg->event())) {
73  --i;
74  }
75  }
76  }
uint32 lumi() const
Definition: EventMessage.cc:85
uint32 run() const
Definition: EventMessage.cc:73
edm::propagate_const< std::shared_ptr< EventSkipperByID > > eventSkipperByID_
uint64 event() const
Definition: EventMessage.cc:79
EventMsgView const * getNextEvent()

Member Data Documentation

edm::propagate_const<std::shared_ptr<EventSkipperByID> > edm::StreamerFileReader::eventSkipperByID_
private

Definition at line 42 of file StreamerFileReader.h.

Referenced by eventSkipperByID(), and skip().

int edm::StreamerFileReader::initialNumberOfEventsToSkip_
private

Definition at line 43 of file StreamerFileReader.h.

Referenced by reset_().

std::vector<std::string> edm::StreamerFileReader::streamerNames_
private

Definition at line 40 of file StreamerFileReader.h.

Referenced by reset_(), and StreamerFileReader().

edm::propagate_const<std::unique_ptr<StreamerInputFile> > edm::StreamerFileReader::streamReader_
private

Definition at line 41 of file StreamerFileReader.h.

Referenced by genuineCloseFile(), getHeader(), getNextEvent(), newHeader(), and reset_().