Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
ColumnAccessorDataArray.cxx
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 
10 
12 
14 
15 
18 
19 namespace columnar
20 {
22  ~ColumnAccessorDataArray () noexcept
23  {
24  if (dataRef)
25  dataRef->removeAccessor (*this);
26  }
27 
28 
29 
30  void moveAccessor (unsigned& dataIndex, std::unique_ptr<ColumnAccessorDataArray>& accessorData, unsigned& sourceIndex, std::unique_ptr<ColumnAccessorDataArray>& sourceData)
31  {
32  if (accessorData != nullptr)
33  throw std::runtime_error ("data already set, overwriting not yet supported");
34 
35  dataIndex = sourceIndex;
36  sourceIndex = 0;
37 
38  if (sourceData)
39  {
40  if (sourceData->selfPtr != &sourceData)
41  throw std::logic_error ("selfPtr not set correctly");
42 
43  accessorData = std::move (sourceData);
44  accessorData->selfPtr = &accessorData;
45  accessorData->dataIndexPtr = &dataIndex;
46  }
47  }
48 }
columnar::ColumnDataArray::removeAccessor
void removeAccessor(ColumnAccessorDataArray &val_accessorData)
remove an accessor data object
Definition: ColumnarToolArray.cxx:287
columnar::ColumnAccessorDataArray::dataIndexPtr
unsigned * dataIndexPtr
a pointer to the index in the data vector
Definition: ColumnAccessorDataArray.h:29
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
ColumnarToolDataArray.h
ColumnAccessorDataArray.h
columnar::ColumnAccessorDataArray::~ColumnAccessorDataArray
~ColumnAccessorDataArray() noexcept
standard destructor
Definition: ColumnAccessorDataArray.cxx:22
columnar
Definition: ColumnAccessor.h:23
columnar::ColumnAccessorDataArray::selfPtr
std::unique_ptr< ColumnAccessorDataArray > * selfPtr
a pointer to the smart pointer that holds this object
Definition: ColumnAccessorDataArray.h:36