ATLAS Offline Software
Loading...
Searching...
No Matches
RootAuxDynStore.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef ROOTAUXDYNSTORE_H
6#define ROOTAUXDYNSTORE_H
7
9#include "RootAuxDynReader.h"
10
11#include <string>
12#include <mutex>
13
15
17{
18public:
19 RootAuxDynStore(RootAuxDynReader& reader, long long entry,
20 bool standalone, std::recursive_mutex* iomtx = nullptr);
21
22 virtual ~RootAuxDynStore() {}
23
25 virtual const void* getData(SG::auxid_t auxid) const override;
26 virtual const SG::IAuxTypeVector* getVector (SG::auxid_t auxid) const override;
27 virtual void* getData(SG::auxid_t auxid, size_t size, size_t capacity) override;
28
30 virtual const void* getIOData(SG::auxid_t auxid) const override;
31
32
41 virtual void* getDecoration (SG::auxid_t auxid, size_t size, size_t capacity) override;
42
43
48 virtual bool isDecoration (SG::auxid_t auxid) const override;
49
55 virtual size_t size() const override;
56
57
58protected:
60 virtual bool readData(SG::auxid_t auxid) = 0;
61
62protected:
63 long long m_entry;
64
66 typedef AthContainers_detail::mutex mutex_t;
67 typedef AthContainers_detail::lock_guard<mutex_t> guard_t;
69
71 std::recursive_mutex *m_iomutex;
72};
73
74#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()
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