ATLAS Offline Software
|
#include <CAuxContainer_v1.h>
Public Types | |
typedef SG::auxid_t | auxid_t |
The aux ID type definition. More... | |
typedef SG::auxid_set_t | auxid_set_t |
The aux ID set type definition. More... | |
template<class T , class ALLOC = std::allocator<T>> | |
using | AuxVariable_t = std::vector< T, ALLOC > |
Declare how to wrap variables for this sort of base. More... | |
template<class T , class ALLOC = std::allocator<T>> | |
using | LinkedVariable_t = AuxVariable_t< T, ALLOC > |
enum | AuxStoreType { AST_ObjectStore = 0, AST_ContainerStore = 1 } |
Type of the auxiliary store. More... | |
Public Member Functions | |
CAuxContainer_v1 () | |
virtual const void * | getData (SG::auxid_t auxid) const=0 |
Pick up the const version from the base class. More... | |
virtual const IAuxTypeVector * | linkedVector (SG::auxid_t) const |
Return interface for a linked variable. More... | |
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. More... | |
template<typename T , typename ALLOC > | |
auxid_t | getAuxID (const std::string &name, std::vector< T, ALLOC > &, SG::AuxVarFlags flags=SG::AuxVarFlags::None, const SG::auxid_t linkedVariable=SG::null_auxid) |
Get the auxiliary ID for one of the persistent variables. More... | |
template<typename T > | |
auxid_t | getAuxID (const std::string &name, SG::PackedContainer< T > &, SG::AuxVarFlags flags=SG::AuxVarFlags::None, const SG::auxid_t linkedVariable=SG::null_auxid) |
Get the auxiliary ID for one of the persistent variables. More... | |
template<typename T , typename ALLOC > | |
void | regAuxVar (auxid_t auxid, const std::string &name, std::vector< T, ALLOC > &vec) |
Register one of the persistent variables internally. More... | |
template<typename T > | |
void | regAuxVar (auxid_t auxid, const std::string &name, SG::PackedContainer< T > &vec) |
Register one of the persistent variables internally. More... | |
Static Public Attributes | |
static constexpr bool | supportsThinning = true |
Mark that this type supports thinning operations. More... | |
Private Types | |
typedef AthContainers_detail::mutex | mutex_t |
Mutex for multithread synchronization. More... | |
typedef AthContainers_detail::lock_guard< mutex_t > | guard_t |
Private Member Functions | |
AUXVAR_DECL (int, anInt) | |
AUXVAR_DECL (float, aFloat) | |
template<typename ELT , typename CONT > | |
void | regAuxVar1 (auxid_t auxid, const std::string &name, CONT &vec) |
Common code between regAuxVar cases. More... | |
Private Attributes | |
auxid_set_t | m_auxids |
Internal list of all available variables. More... | |
std::vector< SG::IAuxTypeVector * > | m_vecs |
Internal list of all managed variables. More... | |
SG::IAuxStore * | m_store |
Internal dynamic auxiliary store object. More... | |
SG::IAuxStoreIO * | m_storeIO |
The IO interface to the internal auxiliary store. More... | |
bool | m_ownsStore |
Flag deciding if the object owns the dynamic store or not. More... | |
bool | m_locked |
Has the container been locked? More... | |
mutex_t | m_mutex |
std::string | m_name |
Name of the container in memory. Set externally. More... | |
CxxUtils::CachedPointer< std::pmr::memory_resource > m_memResource | ATLAS_THREAD_SAFE |
Memory resource to use for this container. More... | |
Definition at line 25 of file CAuxContainer_v1.h.
|
inherited |
The aux ID set type definition.
Definition at line 65 of file AuxContainerBase.h.
|
inherited |
The aux ID type definition.
Definition at line 63 of file AuxContainerBase.h.
|
inherited |
Declare how to wrap variables for this sort of base.
Definition at line 195 of file AuxContainerBase.h.
|
privateinherited |
Definition at line 247 of file AuxContainerBase.h.
|
inherited |
Definition at line 197 of file AuxContainerBase.h.
|
privateinherited |
Mutex for multithread synchronization.
Definition at line 246 of file AuxContainerBase.h.
|
inherited |
Type of the auxiliary store.
In the xAOD EDM we use auxiliary store objects in some cases to describe a single object, and in most cases to describe a container of objects. This enumeration declares which type the object implementing this interface is.
Enumerator | |
---|---|
AST_ObjectStore | The store describes a single object. |
AST_ContainerStore | The store describes a container. |
Definition at line 66 of file IAuxStoreHolder.h.
DMTest::CAuxContainer_v1::CAuxContainer_v1 | ( | ) |
Definition at line 18 of file CAuxContainer_v1.cxx.
|
private |
|
private |
|
overridevirtualinherited |
Clear all decorations.
Implements SG::IConstAuxStore.
Definition at line 356 of file AuxContainerBase.cxx.
|
inherited |
Get the auxiliary ID for one of the persistent variables.
|
inherited |
Get the auxiliary ID for one of the persistent variables.
|
overridevirtualinherited |
Get the types(names) of variables handled by this container.
Implements SG::IConstAuxStore.
Definition at line 274 of file AuxContainerBase.cxx.
Get a pointer to a given array.
Implements SG::IConstAuxStore.
Definition at line 229 of file AuxContainerBase.cxx.
|
overridevirtualinherited |
Get a pointer to a given array, creating the array if necessary.
Implements SG::IAuxStore.
Definition at line 461 of file AuxContainerBase.cxx.
|
inherited |
Pick up the const version from the base class.
|
overridevirtualinherited |
Get a pointer to a given array, as a decoration.
Implements SG::IConstAuxStore.
Reimplemented in xAOD::EventInfoAuxContainer_v1.
Definition at line 299 of file AuxContainerBase.cxx.
|
overridevirtualinherited |
Get the types(names) of decorations handled by this container.
Implements SG::IConstAuxStore.
Definition at line 281 of file AuxContainerBase.cxx.
|
overridevirtualinherited |
Get the types(names) of variables created dynamically.
Implements SG::IAuxStoreIO.
Definition at line 700 of file AuxContainerBase.cxx.
Get a pointer to the data being stored for one aux data item.
Implements SG::IAuxStoreIO.
Definition at line 658 of file AuxContainerBase.cxx.
|
overridevirtualinherited |
Return the type of the data to be stored for one aux data item.
Implements SG::IAuxStoreIO.
Definition at line 683 of file AuxContainerBase.cxx.
|
overridevirtualinherited |
Get the IDs of the selected dynamic Aux variables (for writing)
Reimplemented from SG::IAuxStoreIO.
Definition at line 720 of file AuxContainerBase.cxx.
|
overridevirtualinherited |
Implements SG::IAuxStoreHolder.
Definition at line 180 of file AuxContainerBase.cxx.
|
overridevirtualinherited |
Get the currently used internal store object.
Implements SG::IAuxStoreHolder.
Definition at line 153 of file AuxContainerBase.cxx.
|
inlineoverridevirtualinherited |
Return the type of the store object.
Implements SG::IAuxStoreHolder.
Definition at line 92 of file AuxContainerBase.h.
|
finaloverridevirtualinherited |
Return vector interface for one aux data item.
Implements SG::IConstAuxStore.
Definition at line 238 of file AuxContainerBase.cxx.
|
overridevirtualinherited |
Return a set of writable data identifiers.
Implements SG::IAuxStore.
Definition at line 497 of file AuxContainerBase.cxx.
|
overridevirtualinherited |
|
pure virtualinherited |
Move all elements from other
to this store.
pos | The starting index of the insertion. |
other | Store from which to do the move. |
ignore | Set of variables that should not be added to the store. |
Let len
be the size of other
. The store will be increased in size by len
elements, with the elements at pos
being copied to pos+len
. Then, for each auxiliary variable, the entire contents of that variable for other
will be moved to this store at index pos
. This will be done via move semantics if possible; otherwise, it will be done with a copy. Variables present in this store but not in other
will have the corresponding elements default-initialized. Variables in other
but not in this store will be added unless they are in ignore
.
Returns true if it is known that none of the vectors' memory moved, false otherwise.
Implemented in SG::AuxStoreInternal.
|
overridevirtualinherited |
Test if a variable is a decoration.
Implements SG::IConstAuxStore.
Reimplemented in xAOD::EventInfoAuxContainer_v1.
Definition at line 290 of file AuxContainerBase.cxx.
|
overridevirtualinherited |
Return interface for a linked variable.
Reimplemented from SG::IConstAuxStore.
Definition at line 395 of file AuxContainerBase.cxx.
|
overridevirtualinherited |
Return interface for a linked variable.
Reimplemented from SG::IAuxStore.
Definition at line 412 of file AuxContainerBase.cxx.
|
inlineinherited |
Return interface for a linked variable.
auxid | The ID of the parent variable. |
If auxid
has a linked variable, then return the IAuxTypeVector
describing it. Otherwise, return nullptr
. May return nullptr
unconditionally if this store does not support linked variables.
Definition at line 189 of file IConstAuxStore.h.
|
overridevirtualinherited |
|
overridevirtualinherited |
Lock a decoration.
Implements SG::IConstAuxStore.
Reimplemented in xAOD::EventInfoAuxContainer_v1.
Definition at line 386 of file AuxContainerBase.cxx.
|
inherited |
Return the memory resource to use.
Definition at line 158 of file AuxContainerBase.cxx.
|
inherited |
Get the name of the container instance.
Definition at line 742 of file AuxContainerBase.cxx.
|
inherited |
Register one of the persistent variables internally.
|
inherited |
Register one of the persistent variables internally.
|
privateinherited |
Common code between regAuxVar cases.
|
overridevirtualinherited |
Reserve a given size for the arrays.
Implements SG::IAuxStore.
Definition at line 532 of file AuxContainerBase.cxx.
|
overridevirtualinherited |
Resize the arrays to a given size.
Implements SG::IAuxStore.
Definition at line 504 of file AuxContainerBase.cxx.
Set the name of the container instance.
Definition at line 747 of file AuxContainerBase.cxx.
|
overridevirtualinherited |
Make an option setting on an aux variable.
Reimplemented from SG::IAuxStore.
Definition at line 637 of file AuxContainerBase.cxx.
|
overridevirtualinherited |
Set a different internal store object.
This function is used by the I/O infrastructure to possibly put a store object into this one, which can interact with dynamic variables directly.
Note that the object takes ownership of the received store.
store | The store that should be used for dynamic variable handling inside the object from now on |
Implements SG::IAuxStoreHolder.
Definition at line 194 of file AuxContainerBase.cxx.
|
overridevirtualinherited |
Shift the contents of the stored arrays.
Implements SG::IAuxStore.
Definition at line 557 of file AuxContainerBase.cxx.
|
overridevirtualinherited |
Get the size of the container.
Implements SG::IConstAuxStore.
Definition at line 429 of file AuxContainerBase.cxx.
|
mutableprivateinherited |
Memory resource to use for this container.
Definition at line 254 of file AuxContainerBase.h.
|
privateinherited |
Internal list of all available variables.
Definition at line 232 of file AuxContainerBase.h.
|
privateinherited |
Has the container been locked?
Definition at line 243 of file AuxContainerBase.h.
|
mutableprivateinherited |
Definition at line 248 of file AuxContainerBase.h.
|
privateinherited |
Name of the container in memory. Set externally.
Definition at line 251 of file AuxContainerBase.h.
|
privateinherited |
Flag deciding if the object owns the dynamic store or not.
Definition at line 241 of file AuxContainerBase.h.
|
privateinherited |
Internal dynamic auxiliary store object.
Definition at line 237 of file AuxContainerBase.h.
|
privateinherited |
The IO interface to the internal auxiliary store.
Definition at line 239 of file AuxContainerBase.h.
|
privateinherited |
Internal list of all managed variables.
Definition at line 234 of file AuxContainerBase.h.
|
staticconstexprinherited |
Mark that this type supports thinning operations.
See AthContainers/supportsThinning.h and AthenaPoolCnvSvc/T_AthenaPoolCnv.h. Helps guide which pool converter template will be used. If false, the default pool converter will be used rather than the aux store-specific one. Ordinary xAOD type should not touch this, but may be overridden in a derived class to handle certain special cases.
Definition at line 199 of file IAuxStore.h.