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;
}
示例#3
0
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();
}
示例#7
0
const uniform_type_info* announce(const std::type_info&,
                                  std::unique_ptr<uniform_type_info> utype) {
    return uti_map().insert(std::move(utype));
}