9#ifndef RAD_DOUBLE_MAP_HPP
10#define RAD_DOUBLE_MAP_HPP
75 std::lock_guard<std::mutex> lock(m_mutex);
91 void Set(
const std::string& key,
const T& value) {
92 std::lock_guard<std::mutex> lock(m_mutex);
93 m_kv[m_kv_write_index][key] = value;
106 void Set(
const std::map<std::string, T>& kv_map) {
107 std::lock_guard<std::mutex> lock(m_mutex);
108 for(
auto& kv : kv_map) {
109 m_kv[m_kv_write_index][kv.first] = kv.second;
123 void Pop(std::map<std::string, T>& kv_map) {
127 int kv_read_index = m_kv_write_index;
129 std::lock_guard<std::mutex> lock(m_mutex);
130 if (m_kv_write_index == 0) {
131 m_kv_write_index = 1;
133 m_kv_write_index = 0;
140 kv_map = m_kv[kv_read_index];
147 m_kv[kv_read_index].clear();
162 std::map<std::string, T> m_kv[2];
163 int m_kv_write_index;
Definition doubleMap.hpp:53
virtual ~DoubleMap()
Definition doubleMap.hpp:64
void Pop(std::map< std::string, T > &kv_map)
Definition doubleMap.hpp:123
void Set(const std::map< std::string, T > &kv_map)
Definition doubleMap.hpp:106
void Set(const std::string &key, const T &value)
Definition doubleMap.hpp:91
DoubleMap()
Definition doubleMap.hpp:58
void Reset()
Definition doubleMap.hpp:74
DoubleMap(const DoubleMap &)=delete
DoubleMap & operator=(const DoubleMap &)=delete
Definition actionsApp.cpp:23