Implement streaming scan through file and use in rocksdb serializer and python

This commit is contained in:
Thomas Krijnen
2025-08-25 12:45:10 +02:00
parent 5a597d1a84
commit d2c7c1532c
16 changed files with 1410 additions and 778 deletions
+10 -4
View File
@@ -414,19 +414,25 @@ class IFC_PARSE_API IfcEntityInstanceData {
{}
IfcEntityInstanceData(IfcEntityInstanceData&& other) noexcept
: storage_(other.storage_)
: storage_(std::exchange(other.storage_, nullptr))
{}
// No copy-constructor anymore because we need the instance for storage model context
// No copy-constructor/-assignment anymore because we need the instance for storage model context
IfcEntityInstanceData(const IfcEntityInstanceData&) = delete;
IfcEntityInstanceData& operator=(const IfcEntityInstanceData&) = delete;
IfcEntityInstanceData& operator=(IfcEntityInstanceData&& other) {
IfcEntityInstanceData& operator=(IfcEntityInstanceData&& other) noexcept {
if (this != &other) {
storage_ = other.storage_;
delete storage_;
storage_ = std::exchange(other.storage_, nullptr);
}
return *this;
}
~IfcEntityInstanceData() {
delete storage_;
}
AttributeValue get_attribute_value(void* storage, const IfcParse::declaration*, std::size_t identity, size_t index) const;
template<typename T>