10#include "kosm_export.h"
11#include "abstractreader.h"
22class DataSetMergeBuffer;
33 void readFromData(
const uint8_t *data, std::size_t len)
override;
35 friend class ::O5mParserTest;
37 [[nodiscard]] uint64_t readUnsigned(
const uint8_t *&it,
const uint8_t *endIt)
const;
38 [[nodiscard]] int64_t readSigned(
const uint8_t *&it,
const uint8_t *endIt)
const;
40 [[nodiscard]] T readDelta(
const uint8_t *&it,
const uint8_t *endIt, T &deltaState);
42 [[nodiscard]]
const char* readString(
const uint8_t *&it,
const uint8_t *endIt);
43 [[nodiscard]] std::pair<const char*, const char*> readStringPair(
const uint8_t *&it,
const uint8_t *endIt);
45 void skipVersionInformation(
const uint8_t *&it,
const uint8_t *end);
46 template <
typename Elem>
47 void readTagOrBbox(Elem &e,
const uint8_t *&it,
const uint8_t *endIt);
49 void readNode(
const uint8_t *begin,
const uint8_t *end);
50 void readWay(
const uint8_t *begin,
const uint8_t *end);
51 void readRelation(
const uint8_t *begin,
const uint8_t *end);
54 void resetDeltaCodingState();
56 int64_t m_nodeIdDelta = 0;
57 int32_t m_latDelata = 0;
58 int32_t m_lonDelta = 0;
60 int64_t m_wayIdDelta = 0;
61 int64_t m_wayNodeIdDelta = 0;
63 int64_t m_relIdDelta = 0;
64 int64_t m_relNodeMemberIdDelta = 0;
65 int64_t m_relWayMemberIdDelta = 0;
66 int64_t m_relRelMemberIdDelta = 0;
68 std::vector<const char*> m_stringLookupTable;
69 uint16_t m_stringLookupPosition = 0;
Abstract base class for OSM file format readers.
A set of nodes, ways and relations.
Zero-copy parser of O5M binary files.
Low-level types and functions to work with raw OSM data as efficiently as possible.
This file is part of the KDE documentation.
Documentation copyright © 1996-2024 The KDE developers.
Generated on Sat Dec 21 2024 17:06:15 by
doxygen 1.12.0 written
by
Dimitri van Heesch, © 1997-2006
KDE's Doxygen guidelines are available online.