8#ifndef XAODCORE_SHALLOWAUXCONTAINER_H
9#define XAODCORE_SHALLOWAUXCONTAINER_H
12#include "AthLinks/DataLink.h"
64 bool standalone =
false );
115 virtual void lock()
override;
119 virtual size_t size()
const override;
129 size_t capacity )
override;
139 virtual void shift(
size_t pos, ptrdiff_t offs )
override;
168 const char*
name()
const;
197 typedef AthContainers_detail::recursive_mutex
mutex_t;
198 typedef AthContainers_detail::lock_guard<mutex_t>
guard_t;
219#include "xAODCore/BaseInfo.h"
#define SG_BASES3(D, B1, B2, B3)
Declare that class D derives from classes B1, B2, and B3.
#define CLASS_DEF(NAME, CID, VERSION)
associate a clid and a version to a type eg
File providing the different SG_BASE macros.
Interface providing I/O for a generic auxiliary store.
Interface for non-const operations on an auxiliary store.
Define macros for attributes used to control the static checker.
Interface to allow an object to lock itself when made const in SG.
Interface for objects taking part in direct ROOT I/O.
AuxStoreType
Type of the auxiliary store.
@ AST_ContainerStore
The store describes a container.
Interface providing I/O for a generic auxiliary store.
Interface for non-const operations on an auxiliary store.
Abstract interface for manipulating vectors of arbitrary types.
A set of aux data identifiers.
Class helping in dealing with dynamic branch selection.
Class creating a shallow copy of an existing auxiliary container.
virtual const SG::IAuxTypeVector * getVector(SG::auxid_t auxid) const override final
Return vector interface for one aux data item.
bool m_locked
Flag keeping track of whether this object is locked or not.
virtual void shift(size_t pos, ptrdiff_t offs) override
Shift the contents of the stored arrays.
virtual void setStore(SG::IAuxStore *store) override
Set a different internal store object.
virtual AuxStoreType getStoreType() const override
Return the type of the store object.
SG::IAuxStore * m_store
Internal dynamic auxiliary store object.
ShallowAuxContainer(bool standalone=false)
Default constructor.
AthContainers_detail::lock_guard< mutex_t > guard_t
AthContainers_detail::recursive_mutex mutex_t
Mutex for multithread synchronization.
bool m_shallowIO
Flag for whether to do "shallow IO" or not.
virtual const auxid_set_t & getWritableAuxIDs() const override
Return a set of writable data identifiers.
virtual const void * getData(auxid_t auxid) const override
Get a pointer to a given array.
void setParent(const DataLink< SG::IConstAuxStore > &link)
Set the parent store.
virtual const auxid_set_t & getDynamicAuxIDs() const override
Get the types(names) of variables created dynamically.
bool m_ownsStore
Flag deciding if the object owns the dynamic store or not.
void setName(const char *name)
Set the name of the container instance.
bool shallowIO() const
Check whether only the overriden parameters will be written out or not.
virtual SG::IAuxStore * getStore() override
Get the currently used internal store object.
SG::IAuxStoreIO * m_storeIO
The IO interface to the internal auxiliary store.
const char * name() const
Get the name of the container instance.
SG::auxid_set_t auxid_set_t
The aux ID set type definition.
virtual const void * getIOData(auxid_t auxid) const override
Get a pointer to the data being stored for one aux data item.
virtual void lock() override
Lock the container.
virtual bool isDecoration(auxid_t auxid) const override
Test if a variable is a decoration.
virtual const auxid_set_t & getDecorIDs() const override
Get the types(names) of decorations handled by this container.
ShallowAuxContainer & operator=(const ShallowAuxContainer &rhs)
Assignment operator.
virtual void lockDecoration(SG::auxid_t auxid) override
Lock a decoration.
DataLink< SG::IConstAuxStore > m_parentLink
Link to the parent object.
SG::auxid_t auxid_t
The aux ID type definition.
virtual void reserve(size_t size) override
Reserve a given size for the arrays.
virtual size_t size() const override
Get the size of the container.
const SG::IAuxStoreIO * m_parentIO
Optional pointer to the IO interface of the parent object.
~ShallowAuxContainer()
Destructor.
virtual const std::type_info * getIOType(auxid_t auxid) const override
Return the type of the data to be stored for one aux data item.
void setShallowIO(bool value)
Set whether only the overriden parameters should be written out.
AuxSelection m_selection
Dynamic attributes selection implementation.
auxid_set_t m_auxids ATLAS_THREAD_SAFE
virtual bool clearDecorations() override
Clear all decorations.
virtual auxid_set_t getSelectedAuxIDs() const override
Get the IDs of the selected dynamic Aux variables (for writing)
std::string m_name
Name of the container in memory. Set externally.
virtual bool resize(size_t size) override
Resize the arrays to a given size.
void remakeAuxIDs() const
virtual bool insertMove(size_t pos, IAuxStore &other, const SG::auxid_set_t &ignore) override
Insert contents of another store via move.
virtual void * getDecoration(auxid_t auxid, size_t size, size_t capacity) override
Return the data vector for one aux data decoration item.
virtual const auxid_set_t & getAuxIDs() const override
Get the types(names) of variables handled by this container.
const DataLink< SG::IConstAuxStore > & parent() const
Get the parent store.
size_t auxid_t
Identifier for a particular aux data item.
ICaloAffectedTool is abstract interface for tools checking if 4 mom is in calo affected region.