ATLAS Offline Software
Public Attributes | List of all members
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 More...
 
const std::type_info * type = nullptr
 the type to use for the column More...
 
bool isOptional = true
 whether this column is optional More...
 
bool readOnly = true
 whether this column will only be used for read access More...
 
bool isOffset = false
 whether this is an offset column More...
 
unsigned arraySize = 1u
 the total size of all inner array dimensions More...
 
std::size_t offsetIndex = 0u
 the index of the offset column (or nullIndex for none) More...
 

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 29 of file ColumnVectorWrapper.h.

Member Data Documentation

◆ 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 75 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 42 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 67 of file ColumnVectorWrapper.h.

◆ isOptional

bool columnar::ColumnVectorElementHeader::isOptional = true

whether this column is optional

Definition at line 50 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 84 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 57 of file ColumnVectorWrapper.h.

◆ type

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

the type to use for the column

Definition at line 46 of file ColumnVectorWrapper.h.


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