16#ifndef YASMIN__BLACKBOARD_KEY_INFO_HPP_
17#define YASMIN__BLACKBOARD_KEY_INFO_HPP_
23#include <unordered_map>
60 :
name(std::move(key_name)) {}
81 std::forward<T>(value))),
83 using ValueType = std::decay_t<T>;
84 auto stored = std::static_pointer_cast<ValueType>(this->default_value);
86 bb.
set<ValueType>(key, *stored);
102 auto stored = std::static_pointer_cast<std::string>(this->default_value);
104 bb.
set<std::string>(key, *stored);
114 return *std::static_pointer_cast<T>(this->default_value);
A thread-safe storage for key-value pairs of varying types.
Definition blackboard.hpp:67
void set(const std::string &name, T value)
Set a value in the blackboard.
Definition blackboard.hpp:122
Definition blackboard.hpp:34
std::string demangle_type(const std::string &mangled_name)
Demangle a C++ type name to a human-readable format.
Definition blackboard.hpp:41
bool has_default
Whether this key has a default value.
Definition blackboard_key_info.hpp:41
BlackboardKeyInfo(std::string key_name)
Constructor with key name only.
Definition blackboard_key_info.hpp:59
BlackboardKeyInfo(std::string key_name, std::string key_description)
Constructor with key name and description.
Definition blackboard_key_info.hpp:67
T get_default_value() const
Retrieve the default value as the given type.
Definition blackboard_key_info.hpp:113
BlackboardKeyInfo(std::string key_name, std::string key_description, const char *value)
Constructor with key name, default value and description for const char *.
Definition blackboard_key_info.hpp:97
std::string description
Human-readable description of the key.
Definition blackboard_key_info.hpp:39
std::string name
The name of the key.
Definition blackboard_key_info.hpp:37
std::function< void(Blackboard &, const std::string &)> inject_default
Function to inject the default value into a blackboard at the given key.
Definition blackboard_key_info.hpp:48
std::string default_value_type
The type name of the default value.
Definition blackboard_key_info.hpp:46
BlackboardKeyInfo(std::string key_name, std::string key_description, T value)
Constructor with key name, default value and description.
Definition blackboard_key_info.hpp:78
BlackboardKeyInfo()=default
Default constructor.
std::shared_ptr< void > default_value
Definition blackboard_key_info.hpp:44