ATLAS Offline Software
Loading...
Searching...
No Matches
columnar::ColumnVectorElementHeader Struct Referencefinal

the header information for a single element in the columnar data vector More...

#include <ColumnVectorWrapper.h>

Collaboration diagram for columnar::ColumnVectorElementHeader:

Public Attributes

std::string debugName
 the name of the column to use in messages
const std::type_info * type = nullptr
 the type to use for the column
bool isOptional = true
 whether this column is optional
bool readOnly = true
 whether this column will only be used for read access
bool isOffset = false
 whether this is an offset column
unsigned arraySize = 1u
 the total size of all inner array dimensions
std::size_t offsetIndex = 0u
 the index of the offset column (or nullIndex for none)
ColumnAccessMode accessMode = ColumnAccessMode::input
 the access mode for the column
std::string offsetName
 the name of the offset column (or empty for none)
std::vector< std::string > linkTargetNames
 for link columns: the target container names
std::string variantLinkKeyColumn
 if this is a variant link column, the name of the key column
std::vector< unsigned > fixedDimensions
 the fixed dimensions (if any)

Detailed Description

the header information for a single element in the columnar data vector

This is a stripped-down and slightly reworked version of ColumnInfo that can be used internally for checking interactions with the data vector from the tool wrapper.

Definition at line 31 of file ColumnVectorWrapper.h.

Member Data Documentation

◆ accessMode

ColumnAccessMode columnar::ColumnVectorElementHeader::accessMode = ColumnAccessMode::input

the access mode for the column

Definition at line 90 of file ColumnVectorWrapper.h.

◆ arraySize

unsigned columnar::ColumnVectorElementHeader::arraySize = 1u

the total size of all inner array dimensions

This is 1 for most columns, but some columns contain an array of values. In that case this is the product of all array dimensions, and is used for size checks.

Definition at line 77 of file ColumnVectorWrapper.h.

◆ debugName

std::string columnar::ColumnVectorElementHeader::debugName

the name of the column to use in messages

This is not used for any actual processing, but is used if I want to print debug or error messages. It is a bit complicated because the same name can refer to different columns in different contexts, and a column could also have a different name in different contexts. However, I do need a way to refer to a column, so I have to put something here. Please do not rely on the exact name being stable. In the future I may also replace it with a list of names (or similar) to give me more options.

Definition at line 44 of file ColumnVectorWrapper.h.

◆ fixedDimensions

std::vector<unsigned> columnar::ColumnVectorElementHeader::fixedDimensions

the fixed dimensions (if any)

Definition at line 102 of file ColumnVectorWrapper.h.

◆ isOffset

bool columnar::ColumnVectorElementHeader::isOffset = false

whether this is an offset column

If this is true it means other columns can use this for their offsets. It also means that the column should have an extra entry at the end to hold the total number of entries in columns using this as an offset. It also implies that the type ought to be ColumnarOffsetType.

Definition at line 69 of file ColumnVectorWrapper.h.

◆ isOptional

bool columnar::ColumnVectorElementHeader::isOptional = true

whether this column is optional

Definition at line 52 of file ColumnVectorWrapper.h.

◆ linkTargetNames

std::vector<std::string> columnar::ColumnVectorElementHeader::linkTargetNames

for link columns: the target container names

Definition at line 96 of file ColumnVectorWrapper.h.

◆ offsetIndex

std::size_t columnar::ColumnVectorElementHeader::offsetIndex = 0u

the index of the offset column (or nullIndex for none)

Most columns do have an offset column, which is usually the offset column for their container. This is used to check that the size of the column matches the size of the offset column.

Definition at line 86 of file ColumnVectorWrapper.h.

◆ offsetName

std::string columnar::ColumnVectorElementHeader::offsetName

the name of the offset column (or empty for none)

Definition at line 93 of file ColumnVectorWrapper.h.

◆ readOnly

bool columnar::ColumnVectorElementHeader::readOnly = true

whether this column will only be used for read access

If this is true, it can be set from a const pointer, and can only be retrieved as a const pointer.

Definition at line 59 of file ColumnVectorWrapper.h.

◆ type

const std::type_info* columnar::ColumnVectorElementHeader::type = nullptr

the type to use for the column

Definition at line 48 of file ColumnVectorWrapper.h.

◆ variantLinkKeyColumn

std::string columnar::ColumnVectorElementHeader::variantLinkKeyColumn

if this is a variant link column, the name of the key column

Definition at line 99 of file ColumnVectorWrapper.h.


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