const uniform_type_info* uniform_type_info::from(const std::string& name) { auto result = uti_map().by_uniform_name(name); if (result == nullptr) { throw std::runtime_error(name + " is an unknown typeid name"); } return result; }
const uniform_type_info* uniform_type_info::from(const std::type_info& tinf) { auto result = uti_map().by_rtti(tinf); if (result == nullptr) { std::string error = "uniform_type_info::by_type_info(): "; error += tinf.name(); error += " has not been announced"; CAF_LOGF_ERROR(error); throw std::runtime_error(error); } return result; }
const uniform_type_info* uniform_type_info::from(const std::type_info& tinf) { auto result = uti_map().by_rtti(tinf); if (result == nullptr) { std::string error = "uniform_type_info::by_type_info(): "; error += detail::to_uniform_name(tinf); error += " is an unknown typeid name"; CPPA_LOGM_ERROR("cppa::uniform_type_info", error); throw std::runtime_error(error); } return result; }
const uniform_type_info* announce(const std::type_info& ti, uniform_type_info_ptr utype) { return uti_map().insert(&ti, std::move(utype)); }
const uniform_type_info* uniform_typeid_by_nr(uint16_t nr) { CAF_ASSERT(nr > 0 && nr < detail::type_nrs); return uti_map().by_type_nr(nr); }
std::vector<const uniform_type_info*> uniform_type_info::instances() { return uti_map().get_all(); }
const uniform_type_info* announce(const std::type_info&, std::unique_ptr<uniform_type_info> utype) { return uti_map().insert(std::move(utype)); }