From 5823e3c780f928f5eed3e720e2a82f423e6d2896 Mon Sep 17 00:00:00 2001 From: Peter Johnson Date: Tue, 28 Jul 2015 22:06:42 -0700 Subject: [PATCH] Storage: Add CreateEntry function for Dispatcher use. --- src/Storage.cpp | 11 +++++++++++ src/Storage.h | 3 +++ 2 files changed, 14 insertions(+) diff --git a/src/Storage.cpp b/src/Storage.cpp index 6a9549a2af..b516c866b0 100644 --- a/src/Storage.cpp +++ b/src/Storage.cpp @@ -23,6 +23,17 @@ Storage::Storage() { Storage::~Storage() {} +std::shared_ptr Storage::CreateEntry(StringRef name, + std::shared_ptr value, + unsigned int flags) { + std::lock_guard lock(m_mutex); + auto& entry = m_entries[name]; + if (!entry) entry = std::make_shared(name); + entry->set_value(value); + entry->set_flags(flags); + return entry; +} + void Storage::GetUpdates(UpdateMap* updates, bool* delete_all) { std::lock_guard lock(m_mutex); m_updates.swap(*updates); diff --git a/src/Storage.h b/src/Storage.h index 420cefe100..74a0c3429d 100644 --- a/src/Storage.h +++ b/src/Storage.h @@ -109,6 +109,9 @@ class Storage { std::shared_ptr FindEntry(StringRef name) const; // Accessors required by Dispatcher. + std::shared_ptr CreateEntry(StringRef name, + std::shared_ptr value, + unsigned int flags); void GetUpdates(UpdateMap* updates, bool* delete_all); std::mutex& mutex() { return m_mutex; }