24 throw std::runtime_error(
"Error in ItemPool: array size mismatch");
32 throw std::runtime_error(
"ItemPool::register_item() -> Attempt to register already "
41 throw std::runtime_error(
" ItemPool::register_item() -> Attempt to reuse existing key");
54 throw std::runtime_error(
"ItemPool::deregister_item() -> Attempt to deregister "
55 "non existing item.");
56 auto key = it->second;
identifier_type register_item(SessionItem *item, identifier_type key={})
void unregister_item(SessionItem *item)
std::map< const SessionItem *, identifier_type > m_item_to_key
std::map< identifier_type, SessionItem * > m_key_to_item
identifier_type key_for_item(const SessionItem *item) const
SessionItem * item_for_key(const identifier_type &key) const
The main object representing an editable/displayable/serializable entity.
static identifier_type generate()
materialitems.h Collection of materials to populate MaterialModel.
std::string identifier_type