Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
ColumnAccessorDataArray.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_CORE_COLUMN_ACCESSOR_DATA_ARRAY_H
9 #define COLUMNAR_CORE_COLUMN_ACCESSOR_DATA_ARRAY_H
10 
13 #include <memory>
14 
15 namespace columnar
16 {
17  template<typename CM> class ColumnarTool;
18  struct ColumnDataArray;
19 
23  {
29  unsigned *dataIndexPtr = nullptr;
30 
36  std::unique_ptr<ColumnAccessorDataArray> *selfPtr = nullptr;
37 
40 
42  const std::type_info *type = nullptr;
43 
46 
48  ColumnAccessorDataArray (unsigned *val_dataIndexPtr, std::unique_ptr<ColumnAccessorDataArray> *val_selfPtr, const std::type_info *val_type, ColumnAccessMode val_accessMode) noexcept
49  : dataIndexPtr (val_dataIndexPtr), selfPtr (val_selfPtr), type (val_type), accessMode (val_accessMode) {}
50 
52  ~ColumnAccessorDataArray () noexcept;
53  };
54 
55  void moveAccessor (unsigned& dataIndex, std::unique_ptr<ColumnAccessorDataArray>& accessorData, unsigned& sourceIndex, std::unique_ptr<ColumnAccessorDataArray>& sourceData);
56 }
57 
58 #endif
columnar::ColumnAccessorDataArray::type
const std::type_info * type
the type of the column elements
Definition: ColumnAccessorDataArray.h:42
columnar::final
CM final
Definition: ColumnAccessor.h:106
columnar::ColumnDataArray
Definition: ColumnarToolDataArray.h:17
columnar::ColumnAccessorDataArray::dataIndexPtr
unsigned * dataIndexPtr
a pointer to the index in the data vector
Definition: ColumnAccessorDataArray.h:29
columnar::ColumnAccessorDataArray::ColumnAccessorDataArray
ColumnAccessorDataArray(unsigned *val_dataIndexPtr, std::unique_ptr< ColumnAccessorDataArray > *val_selfPtr, const std::type_info *val_type, ColumnAccessMode val_accessMode) noexcept
initializing constructor
Definition: ColumnAccessorDataArray.h:48
columnar::moveAccessor
void moveAccessor(unsigned &dataIndex, std::unique_ptr< ColumnAccessorDataArray > &accessorData, unsigned &sourceIndex, std::unique_ptr< ColumnAccessorDataArray > &sourceData)
Definition: ColumnAccessorDataArray.cxx:30
columnar::ColumnAccessorDataArray::dataRef
ColumnDataArray * dataRef
the ColumnDataArray object that holds us
Definition: ColumnAccessorDataArray.h:39
columnar::ColumnAccessorDataArray::accessMode
ColumnAccessMode accessMode
the access mode for the column
Definition: ColumnAccessorDataArray.h:45
columnar::ColumnAccessorDataArray::~ColumnAccessorDataArray
~ColumnAccessorDataArray() noexcept
standard destructor
Definition: ColumnAccessorDataArray.cxx:22
ColumnarDef.h
columnar::ColumnAccessMode
ColumnAccessMode
an enum for the different access modes for a column
Definition: ColumnInfo.h:19
columnar
Definition: ColumnAccessor.h:23
columnar::ColumnarTool
the base class for all columnar components
Definition: ColumnAccessorDataArray.h:17
columnar::ColumnAccessorDataArray
all the data about a column accessor that the ColumnarTool needs to know about
Definition: ColumnAccessorDataArray.h:23
ColumnInfo.h
columnar::ColumnAccessorDataArray::selfPtr
std::unique_ptr< ColumnAccessorDataArray > * selfPtr
a pointer to the smart pointer that holds this object
Definition: ColumnAccessorDataArray.h:36