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.
 
auto operator* () const
 
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 491 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 500 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 544 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 558 of file ASoA.h.

◆ moveToPos()

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

Definition at line 600 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 522 of file ASoA.h.

◆ operator*() [1/4]

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

Definition at line 567 of file ASoA.h.

◆ operator*() [2/4]

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

Definition at line 574 of file ASoA.h.

◆ operator*() [3/4]

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

Definition at line 584 of file ASoA.h.

◆ operator*() [4/4]

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

Definition at line 592 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 533 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 609 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 606 of file ASoA.h.

◆ mCurrentChunk

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

Definition at line 611 of file ASoA.h.

◆ mCurrentPos

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

Definition at line 607 of file ASoA.h.

◆ mFirstIndex

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

Definition at line 610 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 608 of file ASoA.h.

◆ mOffset

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

Definition at line 612 of file ASoA.h.


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