7 std::unique_lock<std::mutex> lock(
mutex_);
14 parent->setPortInfo( remapping_it->second, info );
24 auto old_type = it->second.port_info.type();
25 if( old_type && old_type != info.
type() )
27 throw LogicError(
"Blackboard::set() failed: once declared, the type of a port shall not change. " 36 std::unique_lock<std::mutex> lock(
mutex_);
42 return &(it->second.port_info);
47 internal_to_external_.insert( {
static_cast<std::string
>(
internal), static_cast<std::string>(external)} );
54 auto port_type = entry_it.second.port_info.type();
57 port_type = &( entry_it.second.value.type() );
60 std::cout << entry_it.first <<
" (" <<
demangle( port_type ) <<
") -> ";
67 std::cout <<
"remapped to parent [" << remapping_it->second <<
"]" <<std::endl;
71 std::cout << ((entry_it.second.value.empty()) ?
"empty" :
"full") << std::endl;
80 std::vector<StringView> out;
84 out.push_back( entry_it.first );
void debugMessage() const
const PortInfo * portInfo(const std::string &key)
const std::type_info * type() const
std::string demangle(char const *name)
std::vector< StringView > getKeys() const
nonstd::string_view StringView
std::weak_ptr< Blackboard > parent_bb_
std::unordered_map< std::string, Entry > storage_
void setPortInfo(std::string key, const PortInfo &info)
std::unordered_map< std::string, std::string > internal_to_external_
void addSubtreeRemapping(StringView internal, StringView external)