ATLAS Offline Software
Loading...
Searching...
No Matches
ColumnInfo.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3*/
4
6
7
8#ifndef COLUMNAR_INTERFACES_COLUMN_INFO_H
9#define COLUMNAR_INTERFACES_COLUMN_INFO_H
10
11#include <cstdint>
12#include <string>
13#include <typeinfo>
14#include <vector>
15
16namespace columnar
17{
20 {
23
26
29 };
30
31
34
35 struct ColumnInfo final
36 {
43 std::string name {};
44
45
47 unsigned index = 0u;
48
49
55 const std::type_info *type = nullptr;
56
57
60
61
75 std::string offsetName {};
76
77
83 std::vector<unsigned> fixedDimensions {};
84
85
93 bool isOffset = false;
94
95
103 std::string replacesColumn {};
104
105
122 bool isOptional = false;
123
124
132 std::string soleLinkTargetName {};
133
134
146 std::uint32_t soleLinkTargetClid = 0;
147
148
154 bool isVariantLink = false;
155
156
177 std::vector<std::string> variantLinkTargetNames {};
178
179
193 };
194}
195
196#endif
ColumnAccessMode
an enum for the different access modes for a column
Definition ColumnInfo.h:20
@ update
an updateable column
Definition ColumnInfo.h:28
@ output
an output column
Definition ColumnInfo.h:25
@ input
an input column
Definition ColumnInfo.h:22
Definition index.py:1
a struct that contains meta-information about each column that's needed to interface the column with ...
Definition ColumnInfo.h:36
std::string offsetName
the name of the offset column used for this column (or empty string for none)
Definition ColumnInfo.h:75
std::string soleLinkTargetName
for simple link columns: the name of the target container
Definition ColumnInfo.h:132
std::string keyColumnForVariantLink
if this is a key column for a variant link, the name of the associated link column
Definition ColumnInfo.h:192
std::uint32_t soleLinkTargetClid
for simple link columns: the CLID of the target container
Definition ColumnInfo.h:146
std::vector< unsigned > fixedDimensions
the fixed dimensions this column has (if any)
Definition ColumnInfo.h:83
bool isOptional
whether this column is optional
Definition ColumnInfo.h:122
std::vector< std::string > variantLinkTargetNames
for variant link key columns: the names of the containers we can link to
Definition ColumnInfo.h:177
std::string name
the name of the column
Definition ColumnInfo.h:43
bool isOffset
whether this is an offset column
Definition ColumnInfo.h:93
ColumnAccessMode accessMode
the access mode for the column
Definition ColumnInfo.h:59
std::string replacesColumn
whether this replaces another column
Definition ColumnInfo.h:103
bool isVariantLink
whether this is a variant link column
Definition ColumnInfo.h:154
const std::type_info * type
the type of the individual entries in the column
Definition ColumnInfo.h:55