Project
Loading...
Searching...
No Matches
o2::framework::WritingCursor< T > Struct Template Reference

#include <AnalysisHelpers.h>

Inherited by o2::framework::Produces< aod::FooBars >, o2::framework::Produces< aod::Timestamps >, o2::framework::Produces< aod::Points >, o2::framework::Produces< o2::aod::SkimmedExampleTrack >, o2::framework::Produces< Collisions >, o2::framework::Produces< Particles >, o2::framework::Produces< XSections >, o2::framework::Produces< PdfInfos >, o2::framework::Produces< HeavyIons >, and o2::framework::Produces< T >.

Public Types

using persistent_table_t = decltype([]() { if constexpr(soa::is_iterator< T >) { return typename T::parent_t{nullptr}
 
using cursor_t = decltype(std::declval< TableBuilder >().cursor< persistent_table_t >())
 

Public Member Functions

template<typename... Ts>
requires (sizeof...(Ts) == framework::pack_size(typename persistent_table_t::persistent_columns_t{}))
void operator() (Ts &&... args)
 
int64_t lastIndex ()
 Last index inserted in the table.
 
bool resetCursor (LifetimeHolder< TableBuilder > builder)
 
void setLabel (const char *label)
 
void reserve (int64_t size)
 
void release ()
 

Static Public Member Functions

static OutputSpec updateOutputSpec (header::DataOrigin const &newOrigin=header::DataOrigin{"AOD"})
 

Public Attributes

 else { return T{nullptr}
 
OutputSpec outputSpec {soa::tableRef2OutputSpec<persistent_table_t::ref>()}
 
decltype(FFL(std::declval< cursor_t >())) cursor
 

Detailed Description

template<is_producable T>
struct o2::framework::WritingCursor< T >

Helper class actually implementing the cursor which can write to a table. The provided template arguments are if type Column and therefore refer only to the persisted columns.

Definition at line 496 of file AnalysisHelpers.h.

Member Typedef Documentation

◆ cursor_t

template<is_producable T>
using o2::framework::WritingCursor< T >::cursor_t = decltype(std::declval<TableBuilder>().cursor<persistent_table_t>())

Definition at line 499 of file AnalysisHelpers.h.

◆ persistent_table_t

template<is_producable T>
using o2::framework::WritingCursor< T >::persistent_table_t = decltype([]() { if constexpr (soa::is_iterator<T>) { return typename T::parent_t{nullptr}

Definition at line 498 of file AnalysisHelpers.h.

Member Function Documentation

◆ lastIndex()

template<is_producable T>
int64_t o2::framework::WritingCursor< T >::lastIndex ( )
inline

Last index inserted in the table.

Definition at line 523 of file AnalysisHelpers.h.

◆ operator()()

template<is_producable T>
template<typename... Ts>
requires (sizeof...(Ts) == framework::pack_size(typename persistent_table_t::persistent_columns_t{}))
void o2::framework::WritingCursor< T >::operator() ( Ts &&...  args)
inline

Definition at line 507 of file AnalysisHelpers.h.

◆ release()

template<is_producable T>
void o2::framework::WritingCursor< T >::release ( )
inline

Definition at line 555 of file AnalysisHelpers.h.

◆ reserve()

template<is_producable T>
void o2::framework::WritingCursor< T >::reserve ( int64_t  size)
inline

reserve size rows when filling, so that we do not spend time reallocating the buffers. Switches the internal cursor to UnsafeAppend (no capacity check), which is safe because we just reserved enough space.

Definition at line 548 of file AnalysisHelpers.h.

◆ resetCursor()

template<is_producable T>
bool o2::framework::WritingCursor< T >::resetCursor ( LifetimeHolder< TableBuilder builder)
inline

Definition at line 528 of file AnalysisHelpers.h.

◆ setLabel()

template<is_producable T>
void o2::framework::WritingCursor< T >::setLabel ( const char label)
inline

Definition at line 539 of file AnalysisHelpers.h.

◆ updateOutputSpec()

template<is_producable T>
static OutputSpec o2::framework::WritingCursor< T >::updateOutputSpec ( header::DataOrigin const &  newOrigin = header::DataOrigin{"AOD"})
inlinestatic

Definition at line 501 of file AnalysisHelpers.h.

Member Data Documentation

◆ cursor

template<is_producable T>
decltype(FFL(std::declval<cursor_t>())) o2::framework::WritingCursor< T >::cursor

Definition at line 573 of file AnalysisHelpers.h.

◆ else

template<is_producable T>
o2::framework::WritingCursor< T >::else { return T{nullptr}

Definition at line 498 of file AnalysisHelpers.h.

◆ outputSpec

template<is_producable T>
OutputSpec o2::framework::WritingCursor< T >::outputSpec {soa::tableRef2OutputSpec<persistent_table_t::ref>()}

Definition at line 500 of file AnalysisHelpers.h.


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