diff options
Diffstat (limited to 'src/any_map.cpp')
-rw-r--r-- | src/any_map.cpp | 33 |
1 files changed, 0 insertions, 33 deletions
diff --git a/src/any_map.cpp b/src/any_map.cpp deleted file mode 100644 index de13f85e..00000000 --- a/src/any_map.cpp +++ /dev/null @@ -1,33 +0,0 @@ -#include "any_map.hpp" - -namespace cru -{ - AnyMap::ListenerToken AnyMap::RegisterValueChangeListener(const String& key, const Listener& listener) - { - const auto token = current_listener_token_++; - map_[key].second.push_back(token); - listeners_.emplace(token, listener); - return token; - } - - void AnyMap::UnregisterValueChangeListener(const ListenerToken token) - { - const auto find_result = listeners_.find(token); - if (find_result != listeners_.cend()) - listeners_.erase(find_result); - } - - void AnyMap::InvokeListeners(std::list<ListenerToken>& listener_list, const std::any& value) - { - auto i = listener_list.cbegin(); - while (i != listener_list.cend()) - { - auto current_i = i++; - const auto find_result = listeners_.find(*current_i); - if (find_result != listeners_.cend()) - find_result->second(value); - else - listener_list.erase(current_i); // otherwise remove the invalid listener token. - } - } -} |