Project
Loading...
Searching...
No Matches
o2::soa::ColumnIterator< T, ChunkingPolicy > Class Template Reference

#include <ASoA.h>

Inherits o2::soa::Chunked.

Public Member Functions

 ColumnIterator (arrow::ChunkedArray const *column)
 
 ColumnIterator ()=default
 
 ColumnIterator (ColumnIterator< T, ChunkingPolicy > const &)=default
 
ColumnIterator< T, ChunkingPolicy > & operator= (ColumnIterator< T, ChunkingPolicy > const &)=default
 
 ColumnIterator (ColumnIterator< T, ChunkingPolicy > &&)=default
 
ColumnIterator< T, ChunkingPolicy > & operator= (ColumnIterator< T, ChunkingPolicy > &&)=default
 
void nextChunk () const
 Move the iterator to the next chunk.
 
void prevChunk () const
 
void moveToChunk (int chunk)
 
void moveToEnd ()
 Move the iterator to the end of the column.
 
decltype(auto) operator* () const
 
decltype(auto) operator* () const
 
decltype(auto) operator* () const
 
ColumnIterator< T > & moveToPos ()
 

Public Attributes

unwrap_t< T > const * mCurrent
 
int64_t const * mCurrentPos
 
unwrap_t< T > const * mLast
 
arrow::ChunkedArray const * mColumn
 
int mFirstIndex
 
int mCurrentChunk
 
int mOffset
 

Detailed Description

template<typename T, typename ChunkingPolicy = Chunked>
class o2::soa::ColumnIterator< T, ChunkingPolicy >

Iterator on a single column. FIXME: the ChunkingPolicy for now is fixed to Flat and is a mere boolean which is used to switch off slow "chunking aware" parts. This is ok for now, but most likely we should move the whole chunk navigation logic there.

Definition at line 479 of file ASoA.h.

Constructor & Destructor Documentation

◆ ColumnIterator() [1/4]

template<typename T , typename ChunkingPolicy = Chunked>
o2::soa::ColumnIterator< T, ChunkingPolicy >::ColumnIterator ( arrow::ChunkedArray const *  column)
inline

Constructor of the column iterator. Notice how it takes a pointer to the ChunkedArray (for the data store) and to the index inside it. This means that a ColumnIterator is actually only available as part of a RowView.

Definition at line 488 of file ASoA.h.

◆ ColumnIterator() [2/4]

template<typename T , typename ChunkingPolicy = Chunked>
o2::soa::ColumnIterator< T, ChunkingPolicy >::ColumnIterator ( )
default

◆ ColumnIterator() [3/4]

template<typename T , typename ChunkingPolicy = Chunked>
o2::soa::ColumnIterator< T, ChunkingPolicy >::ColumnIterator ( ColumnIterator< T, ChunkingPolicy > const &  )
default

◆ ColumnIterator() [4/4]

template<typename T , typename ChunkingPolicy = Chunked>
o2::soa::ColumnIterator< T, ChunkingPolicy >::ColumnIterator ( ColumnIterator< T, ChunkingPolicy > &&  )
default

Member Function Documentation

◆ moveToChunk()

template<typename T , typename ChunkingPolicy = Chunked>
void o2::soa::ColumnIterator< T, ChunkingPolicy >::moveToChunk ( int  chunk)
inline

Definition at line 532 of file ASoA.h.

◆ moveToEnd()

template<typename T , typename ChunkingPolicy = Chunked>
void o2::soa::ColumnIterator< T, ChunkingPolicy >::moveToEnd ( )
inline

Move the iterator to the end of the column.

Definition at line 546 of file ASoA.h.

◆ moveToPos()

template<typename T , typename ChunkingPolicy = Chunked>
ColumnIterator< T > & o2::soa::ColumnIterator< T, ChunkingPolicy >::moveToPos ( )
inline

Definition at line 580 of file ASoA.h.

◆ nextChunk()

template<typename T , typename ChunkingPolicy = Chunked>
void o2::soa::ColumnIterator< T, ChunkingPolicy >::nextChunk ( ) const
inline

Move the iterator to the next chunk.

Definition at line 510 of file ASoA.h.

◆ operator*() [1/3]

template<typename T , typename ChunkingPolicy = Chunked>
decltype(auto) o2::soa::ColumnIterator< T, ChunkingPolicy >::operator* ( ) const
inline

Definition at line 555 of file ASoA.h.

◆ operator*() [2/3]

template<typename T , typename ChunkingPolicy = Chunked>
decltype(auto) o2::soa::ColumnIterator< T, ChunkingPolicy >::operator* ( ) const
inline

Definition at line 562 of file ASoA.h.

◆ operator*() [3/3]

template<typename T , typename ChunkingPolicy = Chunked>
decltype(auto) o2::soa::ColumnIterator< T, ChunkingPolicy >::operator* ( ) const
inline

Definition at line 572 of file ASoA.h.

◆ operator=() [1/2]

template<typename T , typename ChunkingPolicy = Chunked>
ColumnIterator< T, ChunkingPolicy > & o2::soa::ColumnIterator< T, ChunkingPolicy >::operator= ( ColumnIterator< T, ChunkingPolicy > &&  )
default

◆ operator=() [2/2]

template<typename T , typename ChunkingPolicy = Chunked>
ColumnIterator< T, ChunkingPolicy > & o2::soa::ColumnIterator< T, ChunkingPolicy >::operator= ( ColumnIterator< T, ChunkingPolicy > const &  )
default

◆ prevChunk()

template<typename T , typename ChunkingPolicy = Chunked>
void o2::soa::ColumnIterator< T, ChunkingPolicy >::prevChunk ( ) const
inline

Definition at line 521 of file ASoA.h.

Member Data Documentation

◆ mColumn

template<typename T , typename ChunkingPolicy = Chunked>
arrow::ChunkedArray const* o2::soa::ColumnIterator< T, ChunkingPolicy >::mColumn

Definition at line 589 of file ASoA.h.

◆ mCurrent

template<typename T , typename ChunkingPolicy = Chunked>
unwrap_t<T> const* o2::soa::ColumnIterator< T, ChunkingPolicy >::mCurrent
mutable

Definition at line 586 of file ASoA.h.

◆ mCurrentChunk

template<typename T , typename ChunkingPolicy = Chunked>
int o2::soa::ColumnIterator< T, ChunkingPolicy >::mCurrentChunk
mutable

Definition at line 591 of file ASoA.h.

◆ mCurrentPos

template<typename T , typename ChunkingPolicy = Chunked>
int64_t const* o2::soa::ColumnIterator< T, ChunkingPolicy >::mCurrentPos

Definition at line 587 of file ASoA.h.

◆ mFirstIndex

template<typename T , typename ChunkingPolicy = Chunked>
int o2::soa::ColumnIterator< T, ChunkingPolicy >::mFirstIndex
mutable

Definition at line 590 of file ASoA.h.

◆ mLast

template<typename T , typename ChunkingPolicy = Chunked>
unwrap_t<T> const* o2::soa::ColumnIterator< T, ChunkingPolicy >::mLast
mutable

Definition at line 588 of file ASoA.h.

◆ mOffset

template<typename T , typename ChunkingPolicy = Chunked>
int o2::soa::ColumnIterator< T, ChunkingPolicy >::mOffset
mutable

Definition at line 592 of file ASoA.h.


The documentation for this class was generated from the following file: