[feature] Put m_metaDeserializer into SharedLoadInfo.

Signed-off-by: Viktor Govako <viktor.govako@gmail.com>
This commit is contained in:
Viktor Govako
2025-06-24 23:53:01 -03:00
committed by Konstantin Pastbin
parent 6beabb2fe1
commit 588028c9eb
13 changed files with 80 additions and 70 deletions

View File

@@ -7,9 +7,8 @@
FeaturesVector::FeaturesVector(FilesContainerR const & cont, feature::DataHeader const & header,
feature::FeaturesOffsetsTable const * table,
indexer::MetadataDeserializer * metaDeserializer)
: m_loadInfo(cont, header)
: m_loadInfo(cont, header, metaDeserializer)
, m_table(table)
, m_metaDeserializer(metaDeserializer)
{
InitRecordsReader();
}
@@ -17,17 +16,19 @@ FeaturesVector::FeaturesVector(FilesContainerR const & cont, feature::DataHeader
void FeaturesVector::InitRecordsReader()
{
FilesContainerR::TReader reader = m_loadInfo.GetDataReader();
ReaderSource src(reader);
feature::DatSectionHeader header;
header.Read(*reader.GetPtr());
CHECK(header.m_version == feature::DatSectionHeader::Version::V0, (base::Underlying(header.m_version)));
header.Read(src);
CHECK_EQUAL(header.m_version, feature::DatSectionHeader::Version::V0, ());
m_recordReader = std::make_unique<RecordReader>(reader.SubReader(header.m_featuresOffset, header.m_featuresSize));
}
std::unique_ptr<FeatureType> FeaturesVector::GetByIndex(uint32_t index) const
{
auto const ftOffset = m_table ? m_table->GetFeatureOffset(index) : index;
return std::make_unique<FeatureType>(&m_loadInfo, m_recordReader->ReadRecord(ftOffset), m_metaDeserializer);
return std::make_unique<FeatureType>(&m_loadInfo, m_recordReader->ReadRecord(ftOffset));
}
size_t FeaturesVector::GetNumFeatures() const
@@ -47,11 +48,11 @@ FeaturesVectorTest::FeaturesVectorTest(FilesContainerR const & cont)
m_vector.m_table = feature::FeaturesOffsetsTable::Load(m_cont).release();
if (m_cont.IsExist(METADATA_FILE_TAG))
m_vector.m_metaDeserializer = indexer::MetadataDeserializer::Load(m_cont).release();
m_vector.m_loadInfo.m_metaDeserializer = indexer::MetadataDeserializer::Load(m_cont).release();
}
FeaturesVectorTest::~FeaturesVectorTest()
{
delete m_vector.m_table;
delete m_vector.m_metaDeserializer;
delete m_vector.m_loadInfo.m_metaDeserializer;
}