ATLAS Offline Software
Loading...
Searching...
No Matches
IColumnarTool.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_I_COLUMNAR_TOOL_H
9#define COLUMNAR_INTERFACES_I_COLUMNAR_TOOL_H
10
11#include <string>
12#include <vector>
13
14namespace columnar
15{
20 using ColumnarOffsetType = std::size_t;
21
25 inline constexpr ColumnarOffsetType invalidObjectIndex = static_cast<ColumnarOffsetType>(-1);
26
27
38 inline const std::string numberOfEventsName = "EventInfo";
39
40
41 struct ColumnInfo;
42
43
212
214 {
215 public:
216 virtual ~IColumnarTool() = default;
217
218
229 virtual void callVoid (void** data) const = 0;
230
231
237 [[nodiscard]] virtual std::vector<ColumnInfo> getColumnInfo () const = 0;
238
239
253 virtual void renameColumn (const std::string& from, const std::string& to) = 0;
254
255
279 virtual void setColumnIndex (const std::string& name, std::size_t index) = 0;
280 };
281}
282
283#endif
char data[hepevt_bytes_allocation_ATLAS]
Definition HepEvt.cxx:11
an interface for tools that operate on columnar data
virtual void callVoid(void **data) const =0
run the tool on the data vector
virtual std::vector< ColumnInfo > getColumnInfo() const =0
the meta-information for the columns
virtual void renameColumn(const std::string &from, const std::string &to)=0
rename one of the columns the tool uses
virtual ~IColumnarTool()=default
virtual void setColumnIndex(const std::string &name, std::size_t index)=0
set the index for the column
const std::string numberOfEventsName
the name used for the column containing the number of events
std::size_t ColumnarOffsetType
the type used for the size and offsets in the columnar data
constexpr ColumnarOffsetType invalidObjectIndex
the value for an invalid element index
Definition index.py:1
a struct that contains meta-information about each column that's needed to interface the column with ...
Definition ColumnInfo.h:35