11#ifndef FRAMEWORK_INPUTRECORDWALKER_H
12#define FRAMEWORK_INPUTRECORDWALKER_H
52template <DataHeaderLike... EXTRA_HEADERS>
79 : mParent(parent), mInputIterator(it), mEnd(
end), mCurrent(mInputIterator.
begin()), mFilterSpecs(filterSpecs)
107 bool result = mInputIterator ==
other.mInputIterator;
119 using part_iterator =
typename input_iterator::const_iterator;
121 bool next(
bool isInitialPart =
false)
123 while (mInputIterator != mEnd) {
124 while (mCurrent != mInputIterator.end()) {
126 if (!isInitialPart && (mCurrent == mInputIterator.end() || ++mCurrent == mInputIterator.end())) {
130 isInitialPart =
false;
132 if (mFilterSpecs.size() > 0) {
133 bool isSelected =
false;
134 for (
auto const& spec : mFilterSpecs) {
135 if ((isSelected = DataRefUtils::match<EXTRA_HEADERS...>(*mCurrent, spec)) ==
true) {
146 mCurrent = mInputIterator.begin();
147 isInitialPart =
true;
152 InputRecord& mParent;
155 part_iterator mCurrent;
156 std::vector<InputSpec>
const& mFilterSpecs;
173 std::vector<InputSpec> mFilterSpecs;
Defining PrimaryVertex explicitly as messageable.
VectorOfTObjectPtrs other