ATLAS Offline Software
Loading...
Searching...
No Matches
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-2026 CERN for the benefit of the ATLAS collaboration
4*/
27
28
29#ifndef ATHCONTAINERSINTERFACES_IAUXSTORE_H
30#define ATHCONTAINERSINTERFACES_IAUXSTORE_H
31
32
34#include <cstddef>
35
36
37class EventContext;
38
39
40namespace SG {
41
42
43class AuxDataOption;
44
45
50 : public IConstAuxStore
51{
52public:
54 using IConstAuxStore::getData;
55
56
75 virtual void* getData (auxid_t auxid, size_t size, size_t capacity) = 0;
76
77
84 virtual const SG::auxid_set_t& getWritableAuxIDs() const = 0;
85
86
102 virtual bool resize (size_t sz) = 0;
103
104
113 virtual void reserve (size_t sz) = 0;
114
115
138 virtual void shift (size_t pos, ptrdiff_t offs) = 0;
139
140
160 virtual bool insertMove (size_t pos,
161 IAuxStore& other,
162 const SG::auxid_set_t& ignore = SG::auxid_set_t())
163 = 0;
164
165
176 virtual void toTransient (const EventContext& ctx) = 0;
177
178
189 virtual bool setOption (auxid_t /*auxid*/, const AuxDataOption& /*option*/)
190 { return false; }
191
192
202 using IConstAuxStore::linkedVector;
204 { return nullptr; }
205
206
216 static constexpr bool supportsThinning = true;
217};
218
219
220} // namespace SG
221
222
223
224#ifndef XAOD_STANDALONE
227SG_BASE( SG::IAuxStore, SG::IConstAuxStore );
228CLASS_DEF( SG::IAuxStore , 178378299 , 1 )
229#endif
230
231
232#endif // not ATHCONTAINERSINTERFACES_IAUXSTORE_H
Provide an interface for finding inheritance information at run time.
#define SG_BASE(D, B)
Declare that class D derives from class B.
macros to associate a CLID to a type
#define CLASS_DEF(NAME, CID, VERSION)
associate a clid and a version to a type eg
Interface for const operations on an auxiliary store.
static Double_t sz
Hold information about an option setting request.
Interface for non-const operations on an auxiliary store.
Definition IAuxStore.h:51
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.
virtual bool setOption(auxid_t, const AuxDataOption &)
Set an option for a given auxiliary variable.
Definition IAuxStore.h:189
virtual bool resize(size_t sz)=0
Change the size of all aux data vectors.
virtual void reserve(size_t sz)=0
Change the capacity of all aux data vectors.
virtual IAuxTypeVector * linkedVector(SG::auxid_t)
Definition IAuxStore.h:203
static constexpr bool supportsThinning
Mark that this type supports thinning operations.
Definition IAuxStore.h:216
virtual const SG::auxid_set_t & getWritableAuxIDs() const =0
Return a set of identifiers for writable data items in this store.
virtual void shift(size_t pos, ptrdiff_t offs)=0
Shift the elements of the container.
virtual void * getData(auxid_t auxid, size_t size, size_t capacity)=0
Return the data vector for one aux data item.
virtual void toTransient(const EventContext &ctx)=0
Perform post-read processing on this store.
Abstract interface for manipulating vectors of arbitrary types.
A set of aux data identifiers.
Definition AuxTypes.h:47
Forward declaration.
SG::auxid_t auxid() const
Return the aux id for this variable.
virtual size_t size() const override
Return the number of elements in the store.
size_t auxid_t
Identifier for a particular aux data item.
Definition AuxTypes.h:27