#include <InternalOfflineMap.h>
Definition at line 20 of file InternalOfflineMap.h.
◆ deleter_f
| typedef void EventContainers::I_InternalIDC::deleter_f(const void *p) |
|
inherited |
◆ hashPair
◆ InternalConstItr
◆ InternalOfflineMap()
| InternalOfflineMap::InternalOfflineMap |
( |
size_t | max | ) |
|
◆ ~InternalOfflineMap()
| virtual EventContainers::InternalOfflineMap::~InternalOfflineMap |
( |
| ) |
|
|
virtualdefault |
◆ addLock()
| StatusCode InternalOfflineMap::addLock |
( |
IdentifierHash | hashId, |
|
|
const void * | ptr ) |
|
overridevirtual |
Implements EventContainers::I_InternalIDC.
Definition at line 101 of file InternalOfflineMap.cxx.
101 {
102 bool added =
insert(hashId, ptr);
104 throw std::runtime_error("IDC WARNING Deletion shouldn't occur in addLock paradigm");
105 }
106 return StatusCode::SUCCESS;
107}
virtual bool insert(IdentifierHash hashId, const void *ptr) override
◆ cbegin()
◆ cend()
◆ cleanUp()
| void InternalOfflineMap::cleanUp |
( |
deleter_f * | deleter | ) |
|
|
overridevirtualnoexcept |
Implements EventContainers::I_InternalIDC.
Definition at line 80 of file InternalOfflineMap.cxx.
80 {
82 m_map.clear();
84 m_needsupdate.store(false, std::memory_order_release);
85}
std::unordered_map< IdentifierHash::value_type, const void * > m_fullMap
virtual void destructor(deleter_f *) noexcept override
◆ destructor()
| void InternalOfflineMap::destructor |
( |
deleter_f * | deleter | ) |
|
|
overridevirtualnoexcept |
◆ fetchOrCreate() [1/2]
| StatusCode InternalOfflineMap::fetchOrCreate |
( |
const std::vector< IdentifierHash > & | hashIds | ) |
|
|
overridevirtual |
◆ fetchOrCreate() [2/2]
◆ findIndexPtr()
| const void * InternalOfflineMap::findIndexPtr |
( |
IdentifierHash | hashId | ) |
const |
|
overridevirtualnoexcept |
◆ fullSize()
| virtual size_t EventContainers::InternalOfflineMap::fullSize |
( |
| ) |
const |
|
inlineoverridevirtualnoexcept |
◆ getAllCurrentHashes()
| std::vector< IdentifierHash > InternalOfflineMap::getAllCurrentHashes |
( |
| ) |
const |
|
overridevirtual |
Implements EventContainers::I_InternalIDC.
Definition at line 36 of file InternalOfflineMap.cxx.
36 {
37 std::vector<IdentifierHash>
ids;
39 if(m_needsupdate.load(std::memory_order_acquire) == true){
41 ids.emplace_back(pair.first);
42 }
44 }else{
45 for(const auto &pair : m_map){
46 ids.emplace_back(pair.first);
47 }
48 }
50}
void sort(typename DataModel_detail::iterator< DVL > beg, typename DataModel_detail::iterator< DVL > end)
Specialization of sort for DataVector/List.
◆ getAllHashPtrPair()
◆ indexFind()
Implements EventContainers::I_InternalIDC.
Definition at line 69 of file InternalOfflineMap.cxx.
69 {
70 if(m_needsupdate.load(std::memory_order_acquire))
wait();
72 if(itr!= m_map.cend() && itr->first==hashId) return itr;
73 return m_map.cend();
74}
EventContainers::hashPair< void > hashPair
◆ insert()
| bool InternalOfflineMap::insert |
( |
IdentifierHash | hashId, |
|
|
const void * | ptr ) |
|
overridevirtual |
◆ numberOfCollections()
| size_t InternalOfflineMap::numberOfCollections |
( |
| ) |
const |
|
overridevirtual |
◆ removeCollection()
◆ tryAddFromCache() [1/2]
◆ tryAddFromCache() [2/2]
◆ wait()
| void InternalOfflineMap::wait |
( |
| ) |
const |
|
overridevirtual |
Implements EventContainers::I_InternalIDC.
Definition at line 24 of file InternalOfflineMap.cxx.
24 {
25 std::scoped_lock lock (m_waitMutex);
26 if(m_needsupdate.load(std::memory_order_acquire) == false) return;
27 m_map.clear();
30 m_map.emplace_back(pair.first, pair.second);
31 }
33 m_needsupdate.store(false, std::memory_order_release);
34}
◆ ATLAS_THREAD_SAFE [1/3]
◆ ATLAS_THREAD_SAFE [2/3]
| std::mutex m_waitMutex EventContainers::InternalOfflineMap::ATLAS_THREAD_SAFE |
|
mutableprivate |
◆ ATLAS_THREAD_SAFE [3/3]
| std::atomic<bool> m_needsupdate EventContainers::InternalOfflineMap::ATLAS_THREAD_SAFE |
|
mutableprivate |
◆ m_fullMap
◆ m_maxsize
| const size_t EventContainers::InternalOfflineMap::m_maxsize |
|
private |
The documentation for this class was generated from the following files: