CMS 3D CMS Logo

List of all members | Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes
edm::RawInputSource Class Referenceabstract

#include <RawInputSource.h>

Inheritance diagram for edm::RawInputSource:
edm::InputSource edm::ProductRegistryHelper edm::RawInputSourceFromFiles edm::StreamerInputSource FedRawDataInputSource dqmservices::DQMStreamerReader edm::StreamerFileReader edm::StreamerInputModule< Producer >

Public Member Functions

 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 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 &)
 

Protected Member Functions

virtual bool checkNextEvent ()=0
 
void makeEvent (EventPrincipal &eventPrincipal, EventAuxiliary const &eventAuxiliary)
 
virtual void read (EventPrincipal &eventPrincipal)=0
 
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...
 
virtual void skip (int offset)
 
ItemType state () const
 

Private Member Functions

virtual void closeFile_ () override final
 
virtual void genuineCloseFile ()
 
virtual ItemType getNextItemType () override
 
virtual void preForkReleaseResources () override
 
virtual void readEvent_ (EventPrincipal &eventPrincipal) override
 
virtual std::shared_ptr< LuminosityBlockAuxiliaryreadLuminosityBlockAuxiliary_ () override
 
virtual std::shared_ptr< RunAuxiliaryreadRunAuxiliary_ () override
 
virtual void reset_ ()
 
virtual void rewind_ () override
 

Private Attributes

bool fakeInputFileTransition_
 
bool inputFileTransitionsEachEvent_
 

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_
 

Detailed Description

Definition at line 17 of file RawInputSource.h.

Constructor & Destructor Documentation

edm::RawInputSource::RawInputSource ( ParameterSet const &  pset,
InputSourceDescription const &  desc 
)
explicit

Definition at line 15 of file RawInputSource.cc.

References edm::Timestamp::beginOfTime(), and edm::InputSource::setTimestamp().

15  :
16  InputSource(pset, desc),
17  // The default value for the following parameter get defined in at least one derived class
18  // where it has a different default value.
19  inputFileTransitionsEachEvent_(pset.getUntrackedParameter<bool>("inputFileTransitionsEachEvent", false)),
22  }
void setTimestamp(Timestamp const &theTime)
To set the current time, as seen by the input source.
Definition: InputSource.h:354
static Timestamp beginOfTime()
Definition: Timestamp.h:103
bool inputFileTransitionsEachEvent_
InputSource(ParameterSet const &, InputSourceDescription const &)
Constructor.
Definition: InputSource.cc:47
edm::RawInputSource::~RawInputSource ( )
virtual

Definition at line 24 of file RawInputSource.cc.

24  {
25  }

Member Function Documentation

virtual bool edm::RawInputSource::checkNextEvent ( )
protectedpure virtual
void edm::RawInputSource::closeFile_ ( )
finaloverrideprivatevirtual

Reimplemented from edm::InputSource.

Definition at line 121 of file RawInputSource.cc.

References fakeInputFileTransition_, and genuineCloseFile().

Referenced by dqmservices::DQMStreamerReader::checkNextEvent(), dqmservices::DQMStreamerReader::openNextFile_(), dqmservices::DQMStreamerReader::prepareNextEvent(), dqmservices::DQMStreamerReader::prepareNextFile(), setInputFileTransitionsEachEvent(), and dqmservices::DQMStreamerReader::skip().

121  {
124  } else {
125  // Do nothing because we returned a fake input file transition
126  // value from getNextItemType which resulted in this call
127  // to closeFile_.
128 
129  // Reset the flag because the next call to closeFile_ might
130  // be real.
131  fakeInputFileTransition_ = false;
132  }
133  }
virtual void genuineCloseFile()
void edm::RawInputSource::fillDescription ( ParameterSetDescription description)
static

Definition at line 114 of file RawInputSource.cc.

References edm::InputSource::fillDescription().

Referenced by edm::RawInputSourceFromFiles::fillDescription(), and edm::StreamerInputSource::fillDescription().

114  {
115  // The default value for "inputFileTransitionsEachEvent" gets defined in the derived class
116  // as it depends on the derived class. So, we cannot redefine it here.
117  InputSource::fillDescription(description);
118  }
static void fillDescription(ParameterSetDescription &desc)
Definition: InputSource.cc:127
virtual void edm::RawInputSource::genuineCloseFile ( )
inlineprivatevirtual

Reimplemented in edm::StreamerFileReader, and edm::StreamerInputModule< Producer >.

Definition at line 38 of file RawInputSource.h.

Referenced by closeFile_().

38 { }
InputSource::ItemType edm::RawInputSource::getNextItemType ( )
overrideprivatevirtual

Implements edm::InputSource.

Definition at line 64 of file RawInputSource.cc.

References checkNextEvent(), edm::InputSource::eventCached(), fakeInputFileTransition_, inputFileTransitionsEachEvent_, edm::InputSource::IsEvent, edm::InputSource::IsFile, edm::InputSource::IsInvalid, edm::InputSource::IsLumi, edm::InputSource::IsRun, edm::InputSource::IsStop, edm::InputSource::luminosityBlockAuxiliary(), edm::InputSource::newLumi(), edm::InputSource::newRun(), edm::InputSource::resetLuminosityBlockAuxiliary(), edm::InputSource::resetRunAuxiliary(), edm::InputSource::runAuxiliary(), and edm::InputSource::state().

Referenced by setInputFileTransitionsEachEvent().

64  {
65  if(state() == IsInvalid) {
66  return IsFile;
67  }
68  if(newRun() && runAuxiliary()) {
69  return IsRun;
70  }
72  return IsLumi;
73  }
74  if(eventCached()) {
75  return IsEvent;
76  }
78  // The following two lines are here because after a source
79  // tells the state machine the next ItemType is IsFile,
80  // the source should then always follow that with IsRun
81  // and then IsLumi. These two lines will cause that to happen.
84  }
85  bool another = checkNextEvent();
86  if(!another || (!newLumi() && !eventCached())) {
87  return IsStop;
90  return IsFile;
91  }
92  if(newRun()) {
93  return IsRun;
94  } else if(newLumi()) {
95  return IsLumi;
96  }
97  return IsEvent;
98  }
bool newLumi() const
Definition: InputSource.h:383
void resetRunAuxiliary(bool isNewRun=true) const
Definition: InputSource.h:367
virtual bool checkNextEvent()=0
bool inputFileTransitionsEachEvent_
bool newRun() const
Definition: InputSource.h:380
ItemType state() const
Definition: InputSource.h:358
std::shared_ptr< RunAuxiliary > runAuxiliary() const
Called by the framework to merge or insert run in principal cache.
Definition: InputSource.h:264
void resetLuminosityBlockAuxiliary(bool isNewLumi=true) const
Definition: InputSource.h:371
std::shared_ptr< LuminosityBlockAuxiliary > luminosityBlockAuxiliary() const
Called by the framework to merge or insert lumi in principal cache.
Definition: InputSource.h:267
bool eventCached() const
Definition: InputSource.h:386
void edm::RawInputSource::makeEvent ( EventPrincipal eventPrincipal,
EventAuxiliary const &  eventAuxiliary 
)
protected

Definition at line 54 of file RawInputSource.cc.

References edm::EventPrincipal::fillEventPrincipal(), and edm::InputSource::processHistoryRegistry().

Referenced by FedRawDataInputSource::read().

54  {
55  eventPrincipal.fillEventPrincipal(eventAuxiliary, processHistoryRegistry());
56  }
ProcessHistoryRegistry const & processHistoryRegistry() const
Accessors for process history registry.
Definition: InputSource.h:176
void edm::RawInputSource::preForkReleaseResources ( )
overrideprivatevirtual

Reimplemented from edm::InputSource.

Reimplemented in FedRawDataInputSource.

Definition at line 59 of file RawInputSource.cc.

References edm::InputSource::closeFile().

Referenced by setInputFileTransitionsEachEvent().

59  {
60  closeFile(nullptr, false);
61  }
void closeFile(FileBlock *, bool cleaningUpAfterException)
close current file
Definition: InputSource.cc:275
virtual void edm::RawInputSource::read ( EventPrincipal eventPrincipal)
protectedpure virtual
void edm::RawInputSource::readEvent_ ( EventPrincipal eventPrincipal)
overrideprivatevirtual

Implements edm::InputSource.

Definition at line 45 of file RawInputSource.cc.

References edm::InputSource::eventCached(), edm::InputSource::newLumi(), edm::InputSource::newRun(), read(), and edm::InputSource::resetEventCached().

Referenced by setInputFileTransitionsEachEvent().

45  {
46  assert(!newRun());
47  assert(!newLumi());
48  assert(eventCached());
50  read(eventPrincipal);
51  }
bool newLumi() const
Definition: InputSource.h:383
virtual void read(EventPrincipal &eventPrincipal)=0
bool newRun() const
Definition: InputSource.h:380
void resetEventCached()
Definition: InputSource.h:389
bool eventCached() const
Definition: InputSource.h:386
std::shared_ptr< LuminosityBlockAuxiliary > edm::RawInputSource::readLuminosityBlockAuxiliary_ ( )
overrideprivatevirtual

Implements edm::InputSource.

Definition at line 36 of file RawInputSource.cc.

References edm::InputSource::luminosityBlockAuxiliary(), edm::InputSource::newLumi(), edm::InputSource::newRun(), and edm::InputSource::resetNewLumi().

Referenced by setInputFileTransitionsEachEvent().

36  {
37  assert(!newRun());
38  assert(newLumi());
39  assert(luminosityBlockAuxiliary());
40  resetNewLumi();
41  return luminosityBlockAuxiliary();
42  }
bool newLumi() const
Definition: InputSource.h:383
bool newRun() const
Definition: InputSource.h:380
std::shared_ptr< LuminosityBlockAuxiliary > luminosityBlockAuxiliary() const
Called by the framework to merge or insert lumi in principal cache.
Definition: InputSource.h:267
std::shared_ptr< RunAuxiliary > edm::RawInputSource::readRunAuxiliary_ ( )
overrideprivatevirtual

Implements edm::InputSource.

Definition at line 28 of file RawInputSource.cc.

References edm::InputSource::newRun(), edm::InputSource::resetNewRun(), and edm::InputSource::runAuxiliary().

Referenced by setInputFileTransitionsEachEvent().

28  {
29  assert(newRun());
30  assert(runAuxiliary());
31  resetNewRun();
32  return runAuxiliary();
33  }
bool newRun() const
Definition: InputSource.h:380
std::shared_ptr< RunAuxiliary > runAuxiliary() const
Called by the framework to merge or insert run in principal cache.
Definition: InputSource.h:264
void edm::RawInputSource::reset_ ( )
privatevirtual

Reimplemented in dqmservices::DQMStreamerReader, and edm::StreamerFileReader.

Definition at line 101 of file RawInputSource.cc.

References Exception, and edm::errors::LogicError.

Referenced by rewind_(), and setInputFileTransitionsEachEvent().

101  {
103  << "RawInputSource::reset()\n"
104  << "Forking is not implemented for this type of RawInputSource\n"
105  << "Contact a Framework Developer\n";
106  }
void edm::RawInputSource::rewind_ ( )
overrideprivatevirtual

Reimplemented from edm::InputSource.

Reimplemented in FedRawDataInputSource.

Definition at line 109 of file RawInputSource.cc.

References reset_().

Referenced by setInputFileTransitionsEachEvent().

109  {
110  reset_();
111  }
virtual void reset_()
void edm::RawInputSource::setInputFileTransitionsEachEvent ( )
inlineprotected

Member Data Documentation

bool edm::RawInputSource::fakeInputFileTransition_
private

Definition at line 41 of file RawInputSource.h.

Referenced by closeFile_(), and getNextItemType().

bool edm::RawInputSource::inputFileTransitionsEachEvent_
private

Definition at line 40 of file RawInputSource.h.

Referenced by getNextItemType(), and setInputFileTransitionsEachEvent().