DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
ListStorage.cpp
Go to the documentation of this file.
1
9#include "ListStorage.hpp"
10#include "CommonIssues.hpp"
11
12bool
14{
15 std::lock_guard<std::mutex> lk(m_lists_mutex);
16 return m_lists.count(id);
17}
18
21{
22 std::lock_guard<std::mutex> lk(m_lists_mutex);
23 if (!m_lists.count(id)) {
24 throw ListNotFound(ERS_HERE, id);
25 }
26
27 return m_lists.at(id);
28}
29
30void
32{
33 std::lock_guard<std::mutex> lk(m_lists_mutex);
34 if (m_lists.count(list.list_id) && !ignoreDuplicates) {
35 throw ListExists(ERS_HERE, list.list_id);
36 }
37 m_lists[list.list_id] = list;
38
39 while (m_lists.size() > m_capacity) {
40 m_lists.erase(m_lists.begin());
41 }
42}
43
44size_t
46{
47 std::lock_guard<std::mutex> lk(m_lists_mutex);
48 return m_lists.size();
49}
50
51void
53{
54 std::lock_guard<std::mutex> lk(m_lists_mutex);
55 m_lists.clear();
56}
#define ERS_HERE
IntList get_list(const int &id) const
std::map< int, IntList > m_lists
bool has_list(const int &id) const
void add_list(IntList list, bool ignoreDuplicates=false)