Class to iterate through a ConcatRows object. More...
#include <ConcatRows.h>
Public Member Functions | |
ConcatRowsIter (const ConcatRows &) | |
Construct the iterator on a ConcatRows object. | |
ConcatRowsIter (const ConcatRows &, uInt start, uInt end, uInt incr=1) | |
Construct the iterator on a ConcatRows object for the given row range. | |
Bool | pastEnd () const |
Is the iterator past the end? | |
void | operator++ () |
Go the next chunk. | |
void | operator++ (int) |
void | next () |
RefRows | getChunk () const |
Get the current chunk. | |
uInt | tableNr () const |
Get the nr of the table the current chunk is in. | |
Private Attributes | |
const ConcatRows * | itsRows |
Vector< uInt > | itsChunk |
uInt | itsStart |
uInt | itsEnd |
uInt | itsIncr |
uInt | itsPos |
Bool | itsPastEnd |
Class to iterate through a ConcatRows object.
Internal
ConcatRowsSliceIter is useful to iterate through a ConcatRows object. It is possible to define for which row especially if the ConcatRows object contains slices. Each step in the iteration returns a Slice object containing the next slice in the ConcatRows object.
It is used in Table and data manager classes (e.g. StManColumn).
This example shows how to iterate through a ConcatRows object (giving a slice) and through each of the slices.
void somefunc (const ConcatRows& rownrs) // Iterate through all slices. ConcatRowsSliceIter rowiter(rownrs); while (! rowiter.pastEnd()) { // Get start, end, and increment for this slice. uInt rownr = rowiter.sliceStart(); uInt end = rowiter.sliceEnd(); uInt incr = rowiter.sliceIncr(); // Iterate through the row numbers in the slice. while (rownr <= end) { rownr += incr; } // Go to next slice. rowiter++; } }
Definition at line 194 of file ConcatRows.h.
casacore::ConcatRowsIter::ConcatRowsIter | ( | const ConcatRows & | ) | [explicit] |
Construct the iterator on a ConcatRows object.
It is set to the full range.
casacore::ConcatRowsIter::ConcatRowsIter | ( | const ConcatRows & | , | |
uInt | start, | |||
uInt | end, | |||
uInt | incr = 1 | |||
) |
Construct the iterator on a ConcatRows object for the given row range.
RefRows casacore::ConcatRowsIter::getChunk | ( | ) | const [inline] |
Get the current chunk.
Definition at line 218 of file ConcatRows.h.
References itsChunk, and casacore::True.
void casacore::ConcatRowsIter::next | ( | ) |
Referenced by operator++().
void casacore::ConcatRowsIter::operator++ | ( | int | ) | [inline] |
Definition at line 212 of file ConcatRows.h.
References next().
void casacore::ConcatRowsIter::operator++ | ( | ) | [inline] |
Bool casacore::ConcatRowsIter::pastEnd | ( | ) | const [inline] |
uInt casacore::ConcatRowsIter::tableNr | ( | ) | const [inline] |
Get the nr of the table the current chunk is in.
Definition at line 222 of file ConcatRows.h.
References itsPos.
Vector<uInt> casacore::ConcatRowsIter::itsChunk [private] |
Definition at line 227 of file ConcatRows.h.
Referenced by getChunk().
uInt casacore::ConcatRowsIter::itsEnd [private] |
Definition at line 229 of file ConcatRows.h.
uInt casacore::ConcatRowsIter::itsIncr [private] |
Definition at line 230 of file ConcatRows.h.
Bool casacore::ConcatRowsIter::itsPastEnd [private] |
Definition at line 232 of file ConcatRows.h.
Referenced by pastEnd().
uInt casacore::ConcatRowsIter::itsPos [private] |
Definition at line 231 of file ConcatRows.h.
Referenced by tableNr().
const ConcatRows* casacore::ConcatRowsIter::itsRows [private] |
Definition at line 226 of file ConcatRows.h.
uInt casacore::ConcatRowsIter::itsStart [private] |
Definition at line 228 of file ConcatRows.h.