CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Member Functions | Private Attributes
edm::IndexIntoFile::IndexIntoFileItr Class Reference

#include <IndexIntoFile.h>

Public Member Functions

void advanceToEvent ()
 
void advanceToLumi ()
 
void advanceToNextLumiOrRun ()
 
void advanceToNextRun ()
 
void copyPosition (IndexIntoFileItr const &position)
 Copy the position without modifying the pointer to the IndexIntoFile or size. More...
 
EntryNumber_t entry () const
 
EntryNumber_t firstEventEntryThisLumi () const
 
EntryNumber_t firstEventEntryThisRun () const
 
EntryType getEntryType () const
 
 IndexIntoFileItr (IndexIntoFile const *indexIntoFile, SortOrder sortOrder, EntryType entryType, int indexToRun, int indexToLumi, int indexToEventRange, long long indexToEvent, long long nEvents)
 
void initializeLumi ()
 Should only be used internally and for tests. More...
 
void initializeRun ()
 Should only be used internally and for tests. More...
 
LuminosityBlockNumber_t lumi () const
 
bool operator!= (IndexIntoFileItr const &right) const
 
IndexIntoFileItroperator++ ()
 Move to next event to be processed. More...
 
bool operator== (IndexIntoFileItr const &right) const
 
EntryNumber_t peekAheadAtEventEntry () const
 
LuminosityBlockNumber_t peekAheadAtLumi () const
 
int processHistoryIDIndex () const
 
RunNumber_t run () const
 
void skipEventBackward (int &phIndexOfEvent, RunNumber_t &runOfEvent, LuminosityBlockNumber_t &lumiOfEvent, EntryNumber_t &eventEntry)
 
void skipEventForward (int &phIndexOfSkippedEvent, RunNumber_t &runOfSkippedEvent, LuminosityBlockNumber_t &lumiOfSkippedEvent, EntryNumber_t &skippedEventEntry)
 
bool skipLumiInRun ()
 
bool skipToNextEventInLumi ()
 

Private Member Functions

IndexIntoFile const * indexIntoFile () const
 
long long indexToEvent () const
 
int indexToEventRange () const
 
int indexToLumi () const
 
int indexToRun () const
 
long long nEvents () const
 
int size () const
 
EntryType type () const
 

Private Attributes

value_ptr< IndexIntoFileItrImplimpl_
 

Detailed Description

Definition at line 642 of file IndexIntoFile.h.

Constructor & Destructor Documentation

edm::IndexIntoFile::IndexIntoFileItr::IndexIntoFileItr ( IndexIntoFile const *  indexIntoFile,
SortOrder  sortOrder,
EntryType  entryType,
int  indexToRun,
int  indexToLumi,
int  indexToEventRange,
long long  indexToEvent,
long long  nEvents 
)

This itended to be used only internally and by IndexIntoFile. One thing that is needed for the future, is to add some checks to make sure the iterator is in a valid state inside this constructor. It is currently possible to create an iterator with this constructor in an invalid state and the behavior would then be undefined. In the existing internal usages the iterator will always be valid. (for example IndexIntoFile::begin and IndexIntoFile::findPosition will always return a valid iterator).

Definition at line 1757 of file IndexIntoFile.cc.

References impl_, edm::IndexIntoFile::numericalOrder, edm::swap(), and groupFilesInBlocks::temp.

1764  :
1765  impl_() {
1766  if(sortOrder == numericalOrder) {
1767  value_ptr<IndexIntoFileItrImpl> temp(new IndexIntoFileItrSorted(indexIntoFile,
1768  entryType,
1769  indexToRun,
1770  indexToLumi,
1772  indexToEvent,
1773  nEvents
1774  ));
1775  swap(temp, impl_);
1776  } else {
1777  value_ptr<IndexIntoFileItrImpl> temp(new IndexIntoFileItrNoSort(indexIntoFile,
1778  entryType,
1779  indexToRun,
1780  indexToLumi,
1782  indexToEvent,
1783  nEvents));
1784  swap(temp, impl_);
1785  }
1786  }
void swap(Association< C > &lhs, Association< C > &rhs)
Definition: Association.h:117
IndexIntoFile const * indexIntoFile() const
value_ptr< IndexIntoFileItrImpl > impl_

Member Function Documentation

void edm::IndexIntoFile::IndexIntoFileItr::advanceToEvent ( )

Definition at line 1788 of file IndexIntoFile.cc.

References edm::IndexIntoFile::kEnd, and edm::IndexIntoFile::kEvent.

Referenced by edm::IndexIntoFile::findEventPosition(), edm::RootFile::setEntryAtNextEventInLumi(), and edm::RootFile::wasLastEventJustRead().

1788  {
1789  for(EntryType entryType = getEntryType();
1790  entryType != kEnd && entryType != kEvent;
1791  entryType = getEntryType()) {
1792  impl_->next();
1793  }
1794  }
value_ptr< IndexIntoFileItrImpl > impl_
void edm::IndexIntoFile::IndexIntoFileItr::advanceToLumi ( )

Definition at line 1796 of file IndexIntoFile.cc.

References edm::IndexIntoFile::kEnd, and edm::IndexIntoFile::kLumi.

Referenced by edm::IndexIntoFile::findLumiPosition().

1796  {
1797  for(EntryType entryType = getEntryType();
1798  entryType != kEnd && entryType != kLumi;
1799  entryType = getEntryType()) {
1800  impl_->next();
1801  }
1802  }
value_ptr< IndexIntoFileItrImpl > impl_
void edm::IndexIntoFile::IndexIntoFileItr::advanceToNextLumiOrRun ( )
inline

Definition at line 738 of file IndexIntoFile.h.

References impl_.

Referenced by edm::RootFile::getEntryTypeWithSkipping(), and edm::RootFile::getNextEntryTypeWanted().

738 {impl_->advanceToNextLumiOrRun();}
value_ptr< IndexIntoFileItrImpl > impl_
void edm::IndexIntoFile::IndexIntoFileItr::advanceToNextRun ( )
inline

Definition at line 737 of file IndexIntoFile.h.

References impl_.

Referenced by edm::IndexIntoFile::findPosition(), edm::RootFile::getEntryTypeWithSkipping(), and edm::RootFile::getNextEntryTypeWanted().

737 {impl_->advanceToNextRun();}
value_ptr< IndexIntoFileItrImpl > impl_
void edm::IndexIntoFile::IndexIntoFileItr::copyPosition ( IndexIntoFileItr const &  position)

Copy the position without modifying the pointer to the IndexIntoFile or size.

Definition at line 1805 of file IndexIntoFile.cc.

References impl_.

Referenced by edm::RootFile::setPosition().

1805  {
1806  impl_->copyPosition(*position.impl_);
1807  }
static int position[TOTALCHAMBERS][3]
Definition: ReadPGInfo.cc:509
value_ptr< IndexIntoFileItrImpl > impl_
EntryNumber_t edm::IndexIntoFile::IndexIntoFileItr::entry ( ) const
inline
EntryNumber_t edm::IndexIntoFile::IndexIntoFileItr::firstEventEntryThisLumi ( ) const
inline

Definition at line 682 of file IndexIntoFile.h.

References impl_.

Referenced by edm::RootFile::readLuminosityBlockAuxiliary_().

682 { return impl_->firstEventEntryThisLumi(); }
value_ptr< IndexIntoFileItrImpl > impl_
EntryNumber_t edm::IndexIntoFile::IndexIntoFileItr::firstEventEntryThisRun ( ) const
inline

Returns the TTree entry of the first event which would be processed in the current run/lumi if all the events in the run/lumi were processed in the current processing order. If there are none it returns -1 (invalid).

Definition at line 681 of file IndexIntoFile.h.

References impl_.

Referenced by edm::RootFile::readRunAuxiliary_().

681 { return impl_->firstEventEntryThisRun(); }
value_ptr< IndexIntoFileItrImpl > impl_
EntryType edm::IndexIntoFile::IndexIntoFileItr::getEntryType ( ) const
inline
IndexIntoFile const* edm::IndexIntoFile::IndexIntoFileItr::indexIntoFile ( ) const
inlineprivate

Definition at line 764 of file IndexIntoFile.h.

References impl_.

764 { return impl_->indexIntoFile(); }
value_ptr< IndexIntoFileItrImpl > impl_
long long edm::IndexIntoFile::IndexIntoFileItr::indexToEvent ( ) const
inlineprivate

Definition at line 770 of file IndexIntoFile.h.

References impl_.

770 { return impl_->indexToEvent(); }
value_ptr< IndexIntoFileItrImpl > impl_
int edm::IndexIntoFile::IndexIntoFileItr::indexToEventRange ( ) const
inlineprivate

Definition at line 769 of file IndexIntoFile.h.

References impl_.

769 { return impl_->indexToEventRange(); }
value_ptr< IndexIntoFileItrImpl > impl_
int edm::IndexIntoFile::IndexIntoFileItr::indexToLumi ( ) const
inlineprivate

Definition at line 768 of file IndexIntoFile.h.

References impl_.

768 { return impl_->indexToLumi(); }
value_ptr< IndexIntoFileItrImpl > impl_
int edm::IndexIntoFile::IndexIntoFileItr::indexToRun ( ) const
inlineprivate

Definition at line 767 of file IndexIntoFile.h.

References impl_.

767 { return impl_->indexToRun(); }
value_ptr< IndexIntoFileItrImpl > impl_
void edm::IndexIntoFile::IndexIntoFileItr::initializeLumi ( )
inline

Should only be used internally and for tests.

Definition at line 755 of file IndexIntoFile.h.

References impl_.

Referenced by edm::IndexIntoFile::findPosition().

755 {impl_->initializeLumi();}
value_ptr< IndexIntoFileItrImpl > impl_
void edm::IndexIntoFile::IndexIntoFileItr::initializeRun ( )
inline

Should only be used internally and for tests.

Definition at line 752 of file IndexIntoFile.h.

References impl_.

Referenced by edm::IndexIntoFile::begin(), and edm::IndexIntoFile::findPosition().

752 {impl_->initializeRun();}
value_ptr< IndexIntoFileItrImpl > impl_
LuminosityBlockNumber_t edm::IndexIntoFile::IndexIntoFileItr::lumi ( ) const
inline
long long edm::IndexIntoFile::IndexIntoFileItr::nEvents ( ) const
inlineprivate

Definition at line 771 of file IndexIntoFile.h.

References impl_.

771 { return impl_->nEvents(); }
value_ptr< IndexIntoFileItrImpl > impl_
bool edm::IndexIntoFile::IndexIntoFileItr::operator!= ( IndexIntoFileItr const &  right) const
inline

Definition at line 747 of file IndexIntoFile.h.

747  {
748  return !(*this == right);
749  }
IndexIntoFileItr& edm::IndexIntoFile::IndexIntoFileItr::operator++ ( void  )
inline

Move to next event to be processed.

Definition at line 698 of file IndexIntoFile.h.

References impl_.

698  {
699  impl_->next();
700  return *this;
701  }
value_ptr< IndexIntoFileItrImpl > impl_
bool edm::IndexIntoFile::IndexIntoFileItr::operator== ( IndexIntoFileItr const &  right) const
inline

Definition at line 743 of file IndexIntoFile.h.

References impl_.

743  {
744  return *impl_ == *right.impl_;
745  }
value_ptr< IndexIntoFileItrImpl > impl_
EntryNumber_t edm::IndexIntoFile::IndexIntoFileItr::peekAheadAtEventEntry ( ) const
inline

Same as entry() except when the the current type is kRun or kLumi. In that case instead of always returning -1 (invalid), it will return the event entry that will be processed next and which is in the current run and lumi. If there is none it still returns -1 (invalid).

Definition at line 676 of file IndexIntoFile.h.

References impl_.

Referenced by edm::IndexIntoFile::findPosition().

676 { return impl_->peekAheadAtEventEntry(); }
value_ptr< IndexIntoFileItrImpl > impl_
LuminosityBlockNumber_t edm::IndexIntoFile::IndexIntoFileItr::peekAheadAtLumi ( ) const
inline

Same as lumi() except when the the current type is kRun. In that case instead of always returning 0 (invalid), it will return the lumi that will be processed next

Definition at line 670 of file IndexIntoFile.h.

References impl_.

Referenced by edm::IndexIntoFile::findPosition(), and edm::RootFile::skipThisEntry().

670 { return impl_->peekAheadAtLumi(); }
value_ptr< IndexIntoFileItrImpl > impl_
int edm::IndexIntoFile::IndexIntoFileItr::processHistoryIDIndex ( ) const
inline

Definition at line 663 of file IndexIntoFile.h.

References impl_.

Referenced by edm::RootFile::isDuplicateEvent(), and edm::RootFile::readEvent().

663 {return impl_->processHistoryIDIndex();}
value_ptr< IndexIntoFileItrImpl > impl_
RunNumber_t edm::IndexIntoFile::IndexIntoFileItr::run ( ) const
inline
int edm::IndexIntoFile::IndexIntoFileItr::size ( void  ) const
inlineprivate

Definition at line 765 of file IndexIntoFile.h.

References impl_.

765 { return impl_->size(); }
value_ptr< IndexIntoFileItrImpl > impl_
void edm::IndexIntoFile::IndexIntoFileItr::skipEventBackward ( int &  phIndexOfEvent,
RunNumber_t runOfEvent,
LuminosityBlockNumber_t lumiOfEvent,
EntryNumber_t eventEntry 
)
inline

Move so that the event immediately preceding the the current position is the next event processed. If the type is kEvent or kLumi, then change the type to kRun if and only if the preceding event is in a different run. If the type is kEvent, change the type to kLumi if the lumi is different but the run is the same. Otherwise leave the type unchanged.

Definition at line 722 of file IndexIntoFile.h.

References impl_.

Referenced by edm::RootFile::skipEvents(), and edm::RootFile::wasFirstEventJustRead().

725  {
726  impl_->skipEventBackward(phIndexOfEvent, runOfEvent, lumiOfEvent, eventEntry);
727  }
value_ptr< IndexIntoFileItrImpl > impl_
void edm::IndexIntoFile::IndexIntoFileItr::skipEventForward ( int &  phIndexOfSkippedEvent,
RunNumber_t runOfSkippedEvent,
LuminosityBlockNumber_t lumiOfSkippedEvent,
EntryNumber_t skippedEventEntry 
)
inline

Move to whatever is immediately after the current event or after the next event if there is not a current event, but do not modify the type or run/lumi indexes unless it is necessary because there are no more events in the current run or lumi.

Definition at line 708 of file IndexIntoFile.h.

References impl_.

Referenced by edm::RootFile::skipEvents().

711  {
712  impl_->skipEventForward(phIndexOfSkippedEvent, runOfSkippedEvent, lumiOfSkippedEvent, skippedEventEntry);
713  }
value_ptr< IndexIntoFileItrImpl > impl_
bool edm::IndexIntoFile::IndexIntoFileItr::skipLumiInRun ( )
inline

Move to the next lumi in the current run. Returns false if there is not one.

Definition at line 731 of file IndexIntoFile.h.

References impl_.

Referenced by edm::IndexIntoFile::findPosition(), and edm::RootFile::skipThisEntry().

731 { return impl_->skipLumiInRun(); }
value_ptr< IndexIntoFileItrImpl > impl_
bool edm::IndexIntoFile::IndexIntoFileItr::skipToNextEventInLumi ( )
inline

Move to the next event in the current lumi. Returns false if there is not one.

Definition at line 735 of file IndexIntoFile.h.

References impl_.

Referenced by edm::IndexIntoFile::findPosition().

735 { return impl_->skipToNextEventInLumi(); }
value_ptr< IndexIntoFileItrImpl > impl_
EntryType edm::IndexIntoFile::IndexIntoFileItr::type ( ) const
inlineprivate

Member Data Documentation

value_ptr<IndexIntoFileItrImpl> edm::IndexIntoFile::IndexIntoFileItr::impl_
private