Loading [MathJax]/extensions/tex2jax.js
 |
ATLAS Offline Software
|
Go to the documentation of this file.
81 if ((!this_nc->setupInputData(auxid).isSuccess()) ||
82 (!this_nc->setupOutputData(auxid).isSuccess())) {
88 if (this_nc->getEntryFor(auxid).isSuccess() ==
false) {
89 ::Error(
"xAOD::AuxStoreBase::getVector",
110 std::size_t capacity) {
213 bool anycleared =
false;
281 ->linkedVector(auxid);
300 std::size_t capacity) {
339 ::Error(
"xAOD::AuxStoreBase::getData",
347 ::Error(
"xAOD::AuxStoreBase::getData",
349 ::Error(
"xAOD::AuxStoreBase::getData",
XAOD_MESSAGE(
" name = %s"),
351 ::Error(
"xAOD::AuxStoreBase::getData",
XAOD_MESSAGE(
" size = %i"),
352 static_cast<int>(
size));
353 ::Error(
"xAOD::AuxStoreBase::getData",
354 XAOD_MESSAGE(
" m_structMode = EStructMode::kObjectStore"));
378 ::Error(
"xAOD::AuxStoreBase::resize",
380 static_cast<int>(
size));
389 if (
v && !
v->isLinked()) {
390 if (!
v->resize(
size)) {
411 ::Error(
"xAOD::AuxStoreBase::reserve",
413 static_cast<int>(
size));
418 if (
v && !
v->isLinked()) {
435 ::Error(
"xAOD::AuxStoreBase::shift",
436 XAOD_MESSAGE(
"Should not have been called for single-object "
442 if ((
static_cast<std::size_t
>(std::abs(offs)) >
m_data.
m_size) &&
450 if (
v && !
v->isLinked()) {
467 ::Error(
"xAOD::AuxStoreBase::insertMove",
468 XAOD_MESSAGE(
"Should not have been called for single-object "
474 std::size_t other_size =
other.size();
485 if (
other.getData(
id)) {
486 void* src_ptr =
other.getData(
id, other_size, other_size);
493 const void* orig = v_dst->
toPtr();
495 if (orig != v_dst->
toPtr()) {
520 if (!this_nc->getEntryFor(auxid).isSuccess()) {
521 ::Error(
"xAOD::AuxStoreBase::getIOData",
536 if (!this_nc->setupInputData(auxid).isSuccess()) {
551 ::Fatal(
"xAOD::AuxStoreBase::getIOData",
557 if (!this_nc->getEntryFor(auxid).isSuccess()) {
558 ::Error(
"xAOD::AuxStoreBase::getIOData",
588 if (!this_nc->setupInputData(auxid).isSuccess()) {
589 ::Error(
"xAOD::AuxStoreBase::getIOType",
592 static_cast<int>(auxid),
599 ::Fatal(
"xAOD::AuxStoreBase::getIOType",
const std::string & prefix() const
Get the currently configured object name prefix.
virtual bool shift(size_t pos, ptrdiff_t offs)=0
Shift the elements of the vector.
bool isLinked() const
Return true if this variable is linked from another one.
std::vector< std::unique_ptr< SG::IAuxTypeVector > > m_vecs
Variables handled currently by the object (indexed by auxiliary ID)
static AuxTypeRegistry & instance()
Return the singleton registry instance.
virtual const SG::auxid_set_t & getAuxIDs() const override
Get the types(names) of variables handled by this container.
virtual const std::type_info * getInputType(SG::auxid_t auxid) const =0
Get the type of an input object, for getIOType()
virtual void selectAux(const std::set< std::string > &attributes)
Select dynamic auxiliary attributes for writing.
void setTopStore(bool value=true)
Set whether the object should behave as a "top store" or not.
Exception — Attempted to modify auxiliary data in a locked store.
virtual bool clearDecorations() override
Remove the decorations added so far.
SG::auxid_set_t m_auxIDs
Internal list of auxiliary variable IDs handled currently by the object.
Exceptions that can be thrown from AthContainers.
EStructMode
"Structural" modes of the object
Helper for getting a const version of a pointer.
AthContainers_detail::lock_guard< mutex_t > guard_t
Guard type for multithreaded synchronisation.
virtual const SG::IAuxTypeVector * linkedVector(SG::auxid_t auxid) const override
Return (const) interface for a linked variable.
std::unique_ptr< SG::AuxStoreInternal > m_transientStore
Store for the in-memory-only variables.
std::size_t m_size
The current size of the container being described.
virtual bool insertMove(size_t pos, void *src, size_t src_pos, size_t src_n, IAuxStore &srcStore)=0
Insert elements into the vector via move semantics.
virtual bool hasOutput() const =0
Check if an output is being written by the object.
bool const RAWDATA *ch2 const
virtual bool hasEntryFor(SG::auxid_t auxid) const =0
Check if a given variable is available from the input.
@ kObjectStore
The object describes a single object.
EStructMode structMode() const
Get what structure mode the object was constructed with.
ConcurrentBitset & clear()
Clear all bits in the set.
virtual std::size_t size() const override
Return the number of elements in the store.
SG::auxid_set_t m_decorIDs
Internal list of auxiliary decoration IDs handled currently by the object.
Abstract interface for manipulating vectors of arbitrary types.
virtual const SG::auxid_set_t & getDynamicAuxIDs() const override
Get the types(names) of variables created dynamically.
virtual const SG::auxid_set_t & getWritableAuxIDs() const override
Return a set of writable data identifiers.
Handle mappings between names and auxid_t.
Common base class for the auxiliary store implementations.
virtual ~AuxStoreBase()
Destructor.
virtual const SG::auxid_set_t & getDecorIDs() const override
Get the types(names) of decorations handled by this container.
size_t auxid_t
Identifier for a particular aux data item.
bit_t size() const
Count the number of 1 bits in the set.
virtual void reset()=0
Reset all (transient) information in the object.
Members m_data
Member variables of the base class.
void setStructMode(EStructMode mode)
Set the structure mode of the object to a new value.
virtual const std::type_info * getIOType(SG::auxid_t auxid) const override
Return the type of the data to be stored for one aux data item.
ConcurrentBitset & insert(bit_t bit, bit_t new_nbits=0)
Set a bit to 1.
std::string m_prefix
Static prefix for the branch names.
virtual const void * getData(SG::auxid_t auxid) const override
Get a pointer to a given array.
virtual void lock() override
Lock the object, and don't let decorations be added.
virtual bool resize(std::size_t size) override
Resize the arrays to a given size.
virtual StatusCode setupOutputData(SG::auxid_t auxid)=0
Connect a variable to the output.
virtual SG::auxid_set_t getSelectedAuxIDs() const override
Get the IDs of the selected aux variables.
virtual const SG::IAuxTypeVector * getVector(SG::auxid_t auxid) const override
Return vector interface for one aux data item.
bool isAuxIDSelected(SG::auxid_t auxid) const
Check if an auxiliary variable is selected for ouput writing.
AuxStoreBase(bool topStore=true, EStructMode mode=EStructMode::kUndefinedStore)
Constructor.
EStructMode m_structMode
The "structural" mode of the object.
const T * as_const_ptr(const T *p)
Helper for getting a const version of a pointer.
virtual bool insertMove(std::size_t pos, SG::IAuxStore &other, const SG::auxid_set_t &ignore) override
Insert contents of another store via move.
virtual const void * getInputObject(SG::auxid_t auxid) const =0
Get a pointer to an input object, as it is in memory, for getIOData()
virtual void shift(std::size_t pos, std::ptrdiff_t offs) override
Shift the contents of the stored arrays.
Interface for non-const operations on an auxiliary store.
bool m_locked
Is this container locked?
virtual void reserve(std::size_t size) override
Reserve a given size for the arrays.
bool isTopStore() const
Check if the object is a "top store", or not.
virtual void * getDecoration(SG::auxid_t auxid, std::size_t size, std::size_t capacity) override
Get a pointer to a given array, creating the array if necessary.
Abstract interface for manipulating vectors of arbitrary types.
Handle mappings between names and auxid_t.
virtual void lockDecoration(SG::auxid_t auxid) override
Lock a decoration.
virtual const void * getIOData(SG::auxid_t auxid) const override
Get a pointer to the data being stored for one aux data item.
mutex_t m_mutex1
Mutex objects used for multithreaded synchronisation.
A set of aux data identifiers.
#define ATLAS_THREAD_SAFE
virtual void selectAux(const std::set< std::string > &attributes)
Select which variables should be written out.
ConcurrentBitset & erase(bit_t bit)
Turn off one bit.
std::vector< bool > m_isDecoration
Per variable lock status (indexed by auxiliary ID)
virtual SG::auxid_set_t getSelectedAuxIDs(const SG::auxid_set_t &fullset) const
Return which variables were selected to be written out.
Define macros for attributes used to control the static checker.
An auxiliary data store that holds data internally.
virtual bool isDecoration(SG::auxid_t auxid) const override
Test if a variable is a decoration.
bool m_topStore
Flag stating whether this is a "top store".
AuxSelection m_selection
Object helping to select which auxiliary variables to write.
virtual void * toPtr()=0
Return a pointer to the start of the vector's data.
bool test(bit_t bit) const
Test to see if a bit is set.