| 2751 | } |
| 2752 | |
| 2753 | void IfcParse::IfcFile::build_inverses_(IfcUtil::IfcBaseClass* inst) { |
| 2754 | std::function<void(IfcUtil::IfcBaseClass*, int)> fn = [this, inst](IfcUtil::IfcBaseClass* attr, int idx) { |
| 2755 | if (attr->declaration().as_entity() != nullptr) { |
| 2756 | unsigned entity_attribute_id = attr->id(); |
| 2757 | const auto* decl = inst->declaration().as_entity(); |
| 2758 | |
| 2759 | std::visit([entity_attribute_id, decl, idx, inst](auto& x) { |
| 2760 | if constexpr (std::is_same_v<std::decay_t<decltype(x)>, std::monostate>) { |
| 2761 | } else if constexpr (std::is_same_v<std::decay_t<decltype(x)>, impl::in_memory_file_storage>) { |
| 2762 | x.byref_excl_[{entity_attribute_id, decl->index_in_schema(), idx}].push_back(inst->id()); |
| 2763 | } else if constexpr (std::is_same_v<std::decay_t<decltype(x)>, impl::rocks_db_file_storage>) { |
| 2764 | // @todo |
| 2765 | } |
| 2766 | }, storage_); |
| 2767 | } |
| 2768 | }; |
| 2769 | |
| 2770 | apply_individual_instance_visitor(inst).apply(fn); |
| 2771 | } |
| 2772 | |
| 2773 | void IfcParse::IfcFile::unbatch() { |
| 2774 | for (auto& id : batch_deletion_ids_) { |
nothing calls this directly
no test coverage detected