25 return source->FindReaderIf([item_name](
R3BReader* reader)
32 auto is_match_ok = ((map_flag & ~(map_success_conditions_)) ==
UcesbMap::zero);
38 R3BLOG(debug2, fmt::format(
"Checking ucesb struct item {:?}.", item->
_var_name));
39 if (required_reader ==
nullptr || required_reader->AllowExtraCondition(map_flag, map_success_conditions_))
46 fmt::format(
"Failed to map the item {} required from {} due to the map flag: {}",
48 required_reader->GetName(),
55 R3BLOG(debug,
"Checking struct mapping.");
57 auto is_checking_ok =
true;
60 for (
auto* item = struct_info->_items; item !=
nullptr; item = item->
_next_off_item)
62 is_checking_ok &= check_struct_item(item, source);
65 if (not is_checking_ok)
71 void UcesbStructInfo::terminate()
73 R3BLOG(error,
"ext_data_clnt::setup() failed to map all items:");
75 if (fair::Logger::GetConsoleSeverity() < fair::Severity::info)
81 throw R3B::runtime_error(
"ext_data_clnt::setup() mapping failure may cause unexpected analysis results "
82 "due to missing data members. Unpacker needs fixing.\n\n\n");
#define R3BLOG(severity, x)
void CheckStructMapping(UcesbSource *source)
virtual bool MismappedItemRequired(std::string_view) const
auto check_struct_item_requried(std::string_view item_name, UcesbSource *source) -> R3BReader *
std::underlying_type< UcesbMap >::type UcesbMapUType
struct ext_data_structure_item * _next_off_item