|
ATLAS Offline Software
|
Go to the documentation of this file.
13 #ifndef ATHCONTAINERS_AUXSTOREINTERNAL_H
14 #define ATHCONTAINERS_AUXSTOREINTERNAL_H
158 virtual bool resize (
size_t sz)
override;
169 virtual void reserve (
size_t sz)
override;
194 virtual void shift (
size_t pos, ptrdiff_t offs)
override;
292 virtual void lock()
override;
313 virtual size_t size()
const override;
448 std::vector<std::unique_ptr<IAuxTypeVector> >
m_vecs;
461 typedef AthContainers_detail::lock_guard<mutex_t>
guard_t;
470 #ifndef XAOD_STANDALONE
477 #endif // not XAOD_STANDALONE
480 #endif // not ATHCONTAINERS_AUXSTOREINTERNAL_H
virtual void reserve(size_t sz) override
Change the capacity of all aux data vectors.
void addVector(std::unique_ptr< IAuxTypeVector > vec, bool isDecoration)
Explicitly add a vector to the store.
void addAuxID(auxid_t auxid)
Add a new auxid to the set of those being managed by this store.
size_t size_noLock() const
Return the number of elements in the store; no locking.
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 void * getData(SG::auxid_t auxid) const override
Return the data vector for one aux data item.
SG::auxid_set_t m_auxids
Set of auxid's for which we've created a vector.
AthContainers_detail::lock_guard< mutex_t > guard_t
bool standalone() const
Return the standalone flag.
virtual ~AuxStoreInternal()
Destructor.
SG::auxid_set_t m_decorations
Record which variables are decorations.
AthContainers_detail::mutex mutex_t
Mutex used to synchronize modifications to the cache vector.
std::vector< size_t > vec
AuxStoreInternal(bool standalone=false)
Constructor.
bool m_locked
Has this container been locked?
virtual const SG::auxid_set_t & getDynamicAuxIDs() const override
Get the list of all variables that need to be handled.
Interface providing I/O for a generic auxiliary store.
virtual const SG::auxid_set_t & getAuxIDs() const override
Return a set of identifiers for existing data items in this store.
std::vector< std::unique_ptr< IAuxTypeVector > > m_vecs
The collection of vectors of aux data that we're managing, indexed by auxid.
size_t auxid_t
Identifier for a particular aux data item.
Provide an interface for finding inheritance information at run time.
Interface providing I/O for a generic auxiliary store.
virtual bool clearDecorations() override
Clear all decorations.
virtual void lock() override
Lock the container.
virtual void lockDecoration(SG::auxid_t auxid) override
Lock a decoration.
const void * getIODataInternal(auxid_t auxid, bool quiet) const
Return a pointer to the data to be stored for one aux data item.
virtual void shift(size_t pos, ptrdiff_t offs) override
Shift the elements of the container.
virtual bool insertMove(size_t pos, IAuxStore &other, const SG::auxid_set_t &ignore=SG::auxid_set_t(0)) override
Move all elements from other to this store.
virtual IAuxTypeVector * getVectorInternal_noLock(SG::auxid_t auxid, size_t size, size_t capacity, bool no_lock_check)
Implementation of getVectorInternal; no locking.
virtual bool setOption(auxid_t id, const AuxDataOption &option) override
Set an option for an auxiliary data variable.
virtual void * getDataInternal(SG::auxid_t auxid, size_t size, size_t capacity, bool no_lock_check)
Return the data vector for one aux data item.
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.
virtual size_t size() const override
Return the number of elements in the store.
virtual IAuxTypeVector * linkedVector(SG::auxid_t auxid) override
Return interface for a linked variable.
virtual const void * getIOData(SG::auxid_t auxid) const override
Return a pointer to the data to be stored for one aux data item.
Hold information about an option setting request.
Interface for non-const operations on an auxiliary store.
An auxiliary data store that holds data internally.
bool m_standalone
Are we being written in standalone mode?
virtual const IAuxTypeVector * getVector(SG::auxid_t auxid) const override
Return vector interface for one aux data item.
virtual bool isDecoration(auxid_t auxid) const override
Test if a particular variable is tagged as a decoration.
#define CLASS_DEF(NAME, CID, VERSION)
associate a clid and a version to a type eg
SG_BASE(SG::AuxStoreInternal, SG::IAuxStore)
Abstract interface for manipulating vectors of arbitrary types.
Interface for non-const operations on an auxiliary store.
virtual bool resize(size_t sz) override
Change the size of all aux data vectors.
virtual const SG::auxid_set_t & getDecorIDs() const override
Return a set of identifiers for decorations in this store.
A set of aux data identifiers.
virtual const SG::auxid_set_t & getWritableAuxIDs() const override
Return a set of identifiers for writable data items in this store.
AuxStoreInternal & operator=(const AuxStoreInternal &)=delete
Don't allow assignment.
macros to associate a CLID to a type