ATLAS Offline Software
IAuxStore.h
Go to the documentation of this file.
1 // This file's extension implies that it's C, but it's really -*- C++ -*-.
2 /*
3  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
4 */
29 #ifndef ATHCONTAINERSINTERFACES_IAUXSTORE_H
30 #define ATHCONTAINERSINTERFACES_IAUXSTORE_H
31 
32 
34 #include <cstddef>
35 
36 
37 namespace SG {
38 
39 
40 class AuxDataOption;
41 
42 
46 class IAuxStore
47  : public IConstAuxStore
48 {
49 public:
52 
53 
72  virtual void* getData (auxid_t auxid, size_t size, size_t capacity) = 0;
73 
74 
81  virtual const SG::auxid_set_t& getWritableAuxIDs() const = 0;
82 
83 
99  virtual bool resize (size_t sz) = 0;
100 
101 
110  virtual void reserve (size_t sz) = 0;
111 
112 
135  virtual void shift (size_t pos, ptrdiff_t offs) = 0;
136 
137 
157  virtual bool insertMove (size_t pos,
158  IAuxStore& other,
160  = 0;
161 
162 
173  virtual bool setOption (auxid_t /*auxid*/, const AuxDataOption& /*option*/)
174  { return false; }
175 
176 
188  { return nullptr; }
189 
199  static constexpr bool supportsThinning = true;
200 };
201 
202 
203 } // namespace SG
204 
205 
206 
207 #ifndef XAOD_STANDALONE
208 #include "AthenaKernel/BaseInfo.h"
209 #include "AthenaKernel/CLASS_DEF.h"
211 CLASS_DEF( SG::IAuxStore , 178378299 , 1 )
212 #endif
213 
214 
215 #endif // not ATHCONTAINERSINTERFACES_IAUXSTORE_H
SG::IConstAuxStore::getData
virtual const void * getData(SG::auxid_t auxid) const =0
Return the data vector for one aux data item.
SG::IAuxStore::insertMove
virtual bool insertMove(size_t pos, IAuxStore &other, const SG::auxid_set_t &ignore=SG::auxid_set_t())=0
Move all elements from other to this store.
fitman.sz
sz
Definition: fitman.py:527
SG
Forward declaration.
Definition: CaloCellPacker_400_500.h:32
SG_BASE
SG_BASE(SG::IAuxStore, SG::IConstAuxStore)
SG::IConstAuxStore::size
virtual size_t size() const =0
Return the number of elements in the store.
SG::IAuxStore::shift
virtual void shift(size_t pos, ptrdiff_t offs)=0
Shift the elements of the container.
SG::IAuxStore::linkedVector
virtual IAuxTypeVector * linkedVector(SG::auxid_t)
Definition: IAuxStore.h:187
SG::IAuxStore::supportsThinning
static constexpr bool supportsThinning
Mark that this type supports thinning operations.
Definition: IAuxStore.h:199
DiTauMassTools::ignore
void ignore(T &&)
Definition: PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:58
SG::IAuxStore::setOption
virtual bool setOption(auxid_t, const AuxDataOption &)
Set an option for a given auxiliary variable.
Definition: IAuxStore.h:173
SG::auxid_t
size_t auxid_t
Identifier for a particular aux data item.
Definition: AuxTypes.h:27
BaseInfo.h
Provide an interface for finding inheritance information at run time.
SG::AuxDataOption
Hold information about an option setting request.
Definition: AuxDataOption.h:37
SG::IConstAuxStore::linkedVector
virtual const IAuxTypeVector * linkedVector(SG::auxid_t) const
Return interface for a linked variable.
Definition: IConstAuxStore.h:189
python.LumiBlobConversion.pos
pos
Definition: LumiBlobConversion.py:18
SG::IAuxStore::getWritableAuxIDs
virtual const SG::auxid_set_t & getWritableAuxIDs() const =0
Return a set of identifiers for writable data items in this store.
SG::IAuxStore
Interface for non-const operations on an auxiliary store.
Definition: IAuxStore.h:48
InDetDD::other
@ other
Definition: InDetDD_Defs.h:16
SG::IAuxStore::getData
virtual void * getData(auxid_t auxid, size_t size, size_t capacity)=0
Return the data vector for one aux data item.
CLASS_DEF
#define CLASS_DEF(NAME, CID, VERSION)
associate a clid and a version to a type eg
Definition: Control/AthenaKernel/AthenaKernel/CLASS_DEF.h:64
SG::IAuxTypeVector
Abstract interface for manipulating vectors of arbitrary types.
Definition: IAuxTypeVector.h:42
SG::IAuxStore::resize
virtual bool resize(size_t sz)=0
Change the size of all aux data vectors.
SG::auxid_set_t
A set of aux data identifiers.
Definition: AuxTypes.h:47
IConstAuxStore.h
Interface for const operations on an auxiliary store.
SG::IConstAuxStore
Interface for const operations on an auxiliary store.
Definition: IConstAuxStore.h:64
CLASS_DEF.h
macros to associate a CLID to a type
SG::IAuxStore::reserve
virtual void reserve(size_t sz)=0
Change the capacity of all aux data vectors.