7#include "GaudiKernel/ThreadLocalContext.h"
14 long long entry,
bool standalone, std::recursive_mutex* iomtx)
15 :
SG::AuxStoreInternal( standalone ),
20 for(
auto id : reader.auxIDs() ) {
44 if( this_nc->readData(auxid) ) {
45 ret = SG::AuxStoreInternal::getVector (auxid);
55 throw(
"Non-const access to RootAuxDynStore is not supported");
62 const void* ret = SG::AuxStoreInternal::getIODataInternal (auxid,
true);
65 if( this_nc->readData(auxid) ) {
66 ret = SG::AuxStoreInternal::getIOData (auxid);
92 if (SG::AuxStoreInternal::getIODataInternal (auxid,
true) == 0 &&
93 SG::AuxStoreInternal::getAuxIDs().
count (auxid) > 0)
97 return SG::AuxStoreInternal::getDecoration (auxid,
size, capacity);
110 if (SG::AuxStoreInternal::getIODataInternal (auxid,
true) == 0 &&
111 SG::AuxStoreInternal::getAuxIDs().
count (auxid) > 0)
115 return SG::AuxStoreInternal::isDecoration (auxid);
125 const std::size_t s = SG::AuxStoreInternal::size();
131 if(
getData(
id ) !=
nullptr ) {
132 return SG::AuxStoreInternal::size();
Exceptions that can be thrown from AthContainers.
Abstract interface for manipulating vectors of arbitrary types.
virtual void lock()=0
Interface to allow an object to lock itself when made const in SG.
#define ATLAS_THREAD_SAFE
AthContainers_detail::lock_guard< mutex_t > guard_t
RootAuxDynStore(RootAuxDynReader &reader, long long entry, bool standalone, std::recursive_mutex *iomtx=nullptr)
virtual const void * getIOData(SG::auxid_t auxid) const override
implementation of the IAuxStoreIO interface
virtual const void * getData(SG::auxid_t auxid) const override
implementation of the IAuxStore interface
virtual void * getDecoration(SG::auxid_t auxid, size_t size, size_t capacity) override
Return the data vector for one aux data decoration item.
virtual size_t size() const override
Return the number of elements in the store.
std::recursive_mutex * m_iomutex
Optional mutex used to serialize I/O with RootStorageSvc (not owned).
virtual bool isDecoration(SG::auxid_t auxid) const override
Test if a particular variable is tagged as a decoration.
virtual const SG::IAuxTypeVector * getVector(SG::auxid_t auxid) const override
const EventContext & m_ctx
Event context associated with the event store.
Exception — Attempted to modify auxiliary data in a locked store.
Abstract interface for manipulating vectors of arbitrary types.
int count(std::string s, const std::string ®x)
count how many occurances of a regx are in a string
=============================================================================
size_t auxid_t
Identifier for a particular aux data item.