ATLAS Offline Software
Loading...
Searching...
No Matches
RootAuxDynStore.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef ROOTAUXDYNSTORE_H
6#define ROOTAUXDYNSTORE_H
7
9#include "RootAuxDynReader.h"
10#include "GaudiKernel/EventContext.h"
11
12#include <string>
13#include <mutex>
14
16
18{
19public:
20 RootAuxDynStore(RootAuxDynReader& reader, long long entry,
21 bool standalone, std::recursive_mutex* iomtx = nullptr);
22
23 virtual ~RootAuxDynStore() {}
24
26 virtual const void* getData(SG::auxid_t auxid) const override;
27 virtual const SG::IAuxTypeVector* getVector (SG::auxid_t auxid) const override;
28 virtual void* getData(SG::auxid_t auxid, size_t size, size_t capacity) override;
29
31 virtual const void* getIOData(SG::auxid_t auxid) const override;
32
33
42 virtual void* getDecoration (SG::auxid_t auxid, size_t size, size_t capacity) override;
43
44
49 virtual bool isDecoration (SG::auxid_t auxid) const override;
50
56 virtual size_t size() const override;
57
58
59protected:
61 virtual bool readData(SG::auxid_t auxid) = 0;
62
63protected:
64 long long m_entry;
65
67 EventContext m_ctx;
68
70 typedef AthContainers_detail::mutex mutex_t;
71 typedef AthContainers_detail::lock_guard<mutex_t> guard_t;
73
75 std::recursive_mutex *m_iomutex;
76};
77
78#endif
An auxiliary data store that holds data internally.
size_t size() const
Number of registered mappings.
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.
virtual bool readData(SG::auxid_t auxid)=0
read data from ROOT and store it in m_vecs. Returns False on error
std::recursive_mutex * m_iomutex
Optional mutex used to serialize I/O with RootStorageSvc (not owned).
virtual ~RootAuxDynStore()
EventContext m_ctx
Event context associated with the event store.
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
AthContainers_detail::mutex mutex_t
Mutex used to synchronize modifications to the cache vector.
Abstract interface for manipulating vectors of arbitrary types.
AuxStoreInternal(bool standalone=false)
An auxiliary data store that holds data internally.
size_t auxid_t
Identifier for a particular aux data item.
Definition AuxTypes.h:27