ATLAS Offline Software
Loading...
Searching...
No Matches
columnar::TestUtils::ColumnReaderOutVector< T > Struct Template Referencefinal
Inheritance diagram for columnar::TestUtils::ColumnReaderOutVector< T >:
Collaboration diagram for columnar::TestUtils::ColumnReaderOutVector< T >:

Public Member Functions

 ColumnReaderOutVector (const std::string &val_columnName, const T &val_defaultValue)
virtual bool connect (Backend, std::unordered_map< std::string, const std::vector< ColumnarOffsetType > * > &offsetColumns, std::unordered_map< std::string, ColumnInfo > &requestedColumns) override
virtual void clearColumns () override
virtual void getEntry (Long64_t) override
virtual void setData (ColumnVectorData &columnData) override
virtual BranchPerfData getPerfData (float) override
virtual void collectColumnData () override
void connectColumnIndices (const ColumnVectorHeader &header)
 lookup and store column indices from the header for all enabled output columns

Public Attributes

T defaultValue
const std::vector< ColumnarOffsetType > * offsetColumn = nullptr
std::vector< T > outData
unsigned entries = 0
std::vector< OutputColumnInfo > outputColumns

Detailed Description

template<typename T>
struct columnar::TestUtils::ColumnReaderOutVector< T >

Definition at line 75 of file ColumnReaderImp.cxx.

Constructor & Destructor Documentation

◆ ColumnReaderOutVector()

template<typename T>
columnar::TestUtils::ColumnReaderOutVector< T >::ColumnReaderOutVector ( const std::string & val_columnName,
const T & val_defaultValue )
inline

Member Function Documentation

◆ clearColumns()

template<typename T>
virtual void columnar::TestUtils::ColumnReaderOutVector< T >::clearColumns ( )
inlineoverridevirtual

Implements columnar::TestUtils::ColumnReader.

Definition at line 111 of file ColumnReaderImp.cxx.

112 {
113 outData.clear ();
114 }

◆ collectColumnData()

template<typename T>
virtual void columnar::TestUtils::ColumnReaderOutVector< T >::collectColumnData ( )
inlineoverridevirtual

Implements columnar::TestUtils::ColumnReader.

Definition at line 135 of file ColumnReaderImp.cxx.

136 {
137 entries += outData.size();
138 }

◆ connect()

template<typename T>
virtual bool columnar::TestUtils::ColumnReaderOutVector< T >::connect ( Backend ,
std::unordered_map< std::string, const std::vector< ColumnarOffsetType > * > & offsetColumns,
std::unordered_map< std::string, ColumnInfo > & requestedColumns )
inlineoverridevirtual

Implements columnar::TestUtils::ColumnReader.

Definition at line 88 of file ColumnReaderImp.cxx.

89 {
90 auto iter = requestedColumns.find (outputColumns.at(0).name);
91 if (iter == requestedColumns.end())
92 return false;
93 outputColumns.at(0).enabled = true;
94
95 const auto & offsetName = iter->second.offsetName;
96 if (offsetName.empty())
97 throw std::runtime_error ("missing offset column for: " + outputColumns.at(0).name);
98
100 offsetColumn = offsetIter->second;
101 else
102 throw std::runtime_error ("missing offset column for: " + outputColumns.at(0).name + " (offset column: " + offsetName + ")");
103
104 // IMPORTANT: This has to be erased at the end of the function,
105 // since erasing it earlier would invalidate the offsetName
106 // reference.
107 requestedColumns.erase (iter);
108 return true;
109 }
const std::vector< ColumnarOffsetType > * offsetColumn

◆ connectColumnIndices()

void columnar::TestUtils::ColumnReader::connectColumnIndices ( const ColumnVectorHeader & header)
inlineinherited

lookup and store column indices from the header for all enabled output columns

Definition at line 66 of file ColumnReader.h.

67 {
68 for (auto& col : outputColumns)
69 {
70 if (col.enabled)
71 col.columnIndex = header.getColumnIndex (col.name);
72 }
73 }

◆ getEntry()

template<typename T>
virtual void columnar::TestUtils::ColumnReaderOutVector< T >::getEntry ( Long64_t )
inlineoverridevirtual

Implements columnar::TestUtils::ColumnReader.

Definition at line 116 of file ColumnReaderImp.cxx.

117 {
118 outData.resize (offsetColumn->back(), defaultValue);
119 }

◆ getPerfData()

template<typename T>
virtual BranchPerfData columnar::TestUtils::ColumnReaderOutVector< T >::getPerfData ( float )
inlinenodiscardoverridevirtual

Implements columnar::TestUtils::ColumnReader.

Definition at line 127 of file ColumnReaderImp.cxx.

128 {
130 result.name = outputColumns.at(0).name + "(out)";
132 return result;
133 }

◆ setData()

template<typename T>
virtual void columnar::TestUtils::ColumnReaderOutVector< T >::setData ( ColumnVectorData & columnData)
inlineoverridevirtual

Implements columnar::TestUtils::ColumnReader.

Definition at line 121 of file ColumnReaderImp.cxx.

122 {
123 if (outputColumns.at(0).columnIndex != ColumnVectorHeader::nullIndex)
124 columnData.setColumn (outputColumns.at(0).columnIndex, outData.size(), outData.data());
125 }

Member Data Documentation

◆ defaultValue

template<typename T>
T columnar::TestUtils::ColumnReaderOutVector< T >::defaultValue

Definition at line 77 of file ColumnReaderImp.cxx.

◆ entries

template<typename T>
unsigned columnar::TestUtils::ColumnReaderOutVector< T >::entries = 0

Definition at line 80 of file ColumnReaderImp.cxx.

◆ offsetColumn

template<typename T>
const std::vector<ColumnarOffsetType>* columnar::TestUtils::ColumnReaderOutVector< T >::offsetColumn = nullptr

Definition at line 78 of file ColumnReaderImp.cxx.

◆ outData

template<typename T>
std::vector<T> columnar::TestUtils::ColumnReaderOutVector< T >::outData

Definition at line 79 of file ColumnReaderImp.cxx.

◆ outputColumns

std::vector<OutputColumnInfo> columnar::TestUtils::ColumnReader::outputColumns
inherited

Definition at line 59 of file ColumnReader.h.


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