Class to iterate through a RefRows object. More...
#include <RefRows.h>
Public Member Functions | |
RefRowsSliceIter (const RefRows &) | |
Construct the iterator on a RefRows object. | |
void | reset () |
Reset the iterator to the beginning. | |
Bool | pastEnd () const |
Is the iterator past the end? | |
void | operator++ () |
Go the next slice. | |
void | operator++ (int) |
void | next () |
uInt | sliceStart () const |
Get the current slice start, end, or increment. | |
uInt | sliceEnd () const |
uInt | sliceIncr () const |
Private Attributes | |
Vector< uInt > | itsRows |
Bool | itsSliced |
uInt | itsStart |
uInt | itsEnd |
uInt | itsIncr |
uInt | itsPos |
Bool | itsPastEnd |
Class to iterate through a RefRows object.
Internal
RefRowsSliceIter is useful to iterate through a RefRows object, especially if the RefRows object contains slices. Each step in the iteration returns a Slice object containing the next slice in the RefRows object.
It is used in Table and data manager classes (e.g. StManColumn).
This example shows how to iterate through a RefRows object (giving a slice) and through each of the slices.
void somefunc (const RefRows& rownrs) // Iterate through all slices. RefRowsSliceIter 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 208 of file RefRows.h.
casacore::RefRowsSliceIter::RefRowsSliceIter | ( | const RefRows & | ) |
Construct the iterator on a RefRows object.
It is set to the beginning.
void casacore::RefRowsSliceIter::next | ( | ) |
Referenced by operator++().
void casacore::RefRowsSliceIter::operator++ | ( | int | ) | [inline] |
void casacore::RefRowsSliceIter::operator++ | ( | ) | [inline] |
Bool casacore::RefRowsSliceIter::pastEnd | ( | ) | const [inline] |
void casacore::RefRowsSliceIter::reset | ( | ) |
Reset the iterator to the beginning.
uInt casacore::RefRowsSliceIter::sliceEnd | ( | ) | const [inline] |
uInt casacore::RefRowsSliceIter::sliceIncr | ( | ) | const [inline] |
uInt casacore::RefRowsSliceIter::sliceStart | ( | ) | const [inline] |
uInt casacore::RefRowsSliceIter::itsEnd [private] |
Definition at line 245 of file RefRows.h.
Referenced by sliceEnd().
uInt casacore::RefRowsSliceIter::itsIncr [private] |
Definition at line 246 of file RefRows.h.
Referenced by sliceIncr().
Bool casacore::RefRowsSliceIter::itsPastEnd [private] |
uInt casacore::RefRowsSliceIter::itsPos [private] |
Vector<uInt> casacore::RefRowsSliceIter::itsRows [private] |
Bool casacore::RefRowsSliceIter::itsSliced [private] |
uInt casacore::RefRowsSliceIter::itsStart [private] |
Definition at line 244 of file RefRows.h.
Referenced by sliceStart().