MCPcopy Create free account
hub / github.com/comaps/comaps / BuildCentersTableFromDataFile

Function BuildCentersTableFromDataFile

generator/centers_table_builder.cpp:16–54  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

14namespace indexer
15{
16bool BuildCentersTableFromDataFile(std::string const & filename, bool forceRebuild)
17{
18 try
19 {
20 search::CentersTableBuilder builder;
21
22 {
23 FilesContainerR rcont(filename);
24 if (!forceRebuild && rcont.IsExist(CENTERS_FILE_TAG))
25 return true;
26
27 auto const table = feature::FeaturesOffsetsTable::Load(rcont, FEATURE_OFFSETS_FILE_TAG);
28 if (!table)
29 {
30 LOG(LERROR, ("Can't load offsets table from:", filename));
31 return false;
32 }
33
34 feature::DataHeader const header(rcont);
35 FeaturesVector const features(rcont, header, table.get(), nullptr, nullptr);
36
37 builder.SetGeometryParams(header.GetBounds());
38 features.ForEach([&](FeatureType & ft, uint32_t featureId) { builder.Put(featureId, feature::GetCenter(ft)); });
39 }
40
41 {
42 FilesContainerW writeContainer(filename, FileWriter::OP_WRITE_EXISTING);
43 auto writer = writeContainer.GetWriter(CENTERS_FILE_TAG);
44 builder.Freeze(*writer);
45 }
46 }
47 catch (RootException const & e)
48 {
49 LOG(LERROR, ("Failed to build centers table:", e.Msg()));
50 return false;
51 }
52
53 return true;
54}
55} // namespace indexer

Callers 2

generator_tool.cppFile · 0.85
FinishMethod · 0.85

Calls 10

GetCenterFunction · 0.85
IsExistMethod · 0.80
SetGeometryParamsMethod · 0.80
GetWriterMethod · 0.80
LoadFunction · 0.70
getMethod · 0.65
GetBoundsMethod · 0.45
ForEachMethod · 0.45
PutMethod · 0.45
FreezeMethod · 0.45

Tested by 1

FinishMethod · 0.68