Osmium
0.1
|
#include <pbf.hpp>
Public Member Functions | |
PBF (OSMFile &file, THandler &handler) | |
void | parse () |
Private Types | |
typedef std::pair< const void *, size_t > | array_t |
Private Member Functions | |
void | parse_group (const OSMPBF::PrimitiveGroup &group, const OSMPBF::StringTable &stringtable) |
void | parse_node_group (const OSMPBF::PrimitiveGroup &, const OSMPBF::StringTable &, void(Osmium::Handler::Base::*)(const shared_ptr< Osmium::OSM::Node const > &) const) |
template<typename T > | |
void | parse_node_group (const OSMPBF::PrimitiveGroup &group, const OSMPBF::StringTable &stringtable, T) |
void | parse_way_group (const OSMPBF::PrimitiveGroup &, const OSMPBF::StringTable &, void(Osmium::Handler::Base::*)(const shared_ptr< Osmium::OSM::Way const > &) const) |
template<typename T > | |
void | parse_way_group (const OSMPBF::PrimitiveGroup &group, const OSMPBF::StringTable &stringtable, T) |
void | parse_relation_group (const OSMPBF::PrimitiveGroup &, const OSMPBF::StringTable &, void(Osmium::Handler::Base::*)(const shared_ptr< Osmium::OSM::Relation const > &) const) |
template<typename T > | |
void | parse_relation_group (const OSMPBF::PrimitiveGroup &group, const OSMPBF::StringTable &stringtable, T) |
void | parse_dense_node_group (const OSMPBF::PrimitiveGroup &, const OSMPBF::StringTable &, void(Osmium::Handler::Base::*)(const shared_ptr< Osmium::OSM::Node const > &) const) |
template<typename T > | |
void | parse_dense_node_group (const OSMPBF::PrimitiveGroup &group, const OSMPBF::StringTable &stringtable, T) |
int | convert_from_network_byte_order (unsigned char data[4]) |
bool | read_blob_header () |
array_t | read_blob (const int size) |
Private Attributes | |
unsigned char | m_input_buffer [OSMPBF::max_uncompressed_blob_size] |
unsigned char | m_unpack_buffer [OSMPBF::max_uncompressed_blob_size] |
OSMPBF::Blob | m_pbf_blob |
OSMPBF::BlobHeader | m_pbf_blob_header |
OSMPBF::PrimitiveBlock | m_pbf_primitive_block |
int64_t | m_date_factor |
Class for parsing PBF files.
Generally you are not supposed to instantiate this class yourself. Instead create an OSMFile object and call its read() method.
THandler | A handler class (subclass of Osmium::Handler::Base). |
typedef std::pair<const void*, size_t> Osmium::Input::PBF< THandler >::array_t [private] |
Osmium::Input::PBF< THandler >::PBF | ( | OSMFile & | file, |
THandler & | handler | ||
) | [inline] |
int Osmium::Input::PBF< THandler >::convert_from_network_byte_order | ( | unsigned char | data[4] | ) | [inline, private] |
Convert 4 bytes from network byte order.
void Osmium::Input::PBF< THandler >::parse | ( | ) | [inline, virtual] |
Parse PBF file.
Will throw a subclass of Osmium::OSMFile::FileTypeError when it turns out while parsing the file, that it is of the wrong type.
Implements Osmium::Input::Base< THandler >.
void Osmium::Input::PBF< THandler >::parse_dense_node_group | ( | const OSMPBF< THandler >::PrimitiveGroup & | , |
const OSMPBF< THandler >::StringTable & | , | ||
void(Osmium::Handler::Base::*)(const shared_ptr< Osmium::OSM::Node const > &) | const | ||
) | [inline, private] |
void Osmium::Input::PBF< THandler >::parse_dense_node_group | ( | const OSMPBF< THandler >::PrimitiveGroup & | group, |
const OSMPBF< THandler >::StringTable & | stringtable, | ||
T | |||
) | [inline, private] |
void Osmium::Input::PBF< THandler >::parse_group | ( | const OSMPBF< THandler >::PrimitiveGroup & | group, |
const OSMPBF< THandler >::StringTable & | stringtable | ||
) | [inline, private] |
Parse one PrimitiveGroup inside a PrimitiveBlock. This function will check what type of data the group contains (nodes, dense nodes, ways, or relations) and call the proper parsing function. It will also make sure the right before_* and after_* methods are called.
group | The PrimitiveGroup to parse. |
stringtable | The string table inside the PrimitiveBlock with tags and usernames. |
void Osmium::Input::PBF< THandler >::parse_node_group | ( | const OSMPBF< THandler >::PrimitiveGroup & | , |
const OSMPBF< THandler >::StringTable & | , | ||
void(Osmium::Handler::Base::*)(const shared_ptr< Osmium::OSM::Node const > &) | const | ||
) | [inline, private] |
void Osmium::Input::PBF< THandler >::parse_node_group | ( | const OSMPBF< THandler >::PrimitiveGroup & | group, |
const OSMPBF< THandler >::StringTable & | stringtable, | ||
T | |||
) | [inline, private] |
void Osmium::Input::PBF< THandler >::parse_relation_group | ( | const OSMPBF< THandler >::PrimitiveGroup & | , |
const OSMPBF< THandler >::StringTable & | , | ||
void(Osmium::Handler::Base::*)(const shared_ptr< Osmium::OSM::Relation const > &) | const | ||
) | [inline, private] |
void Osmium::Input::PBF< THandler >::parse_relation_group | ( | const OSMPBF< THandler >::PrimitiveGroup & | group, |
const OSMPBF< THandler >::StringTable & | stringtable, | ||
T | |||
) | [inline, private] |
void Osmium::Input::PBF< THandler >::parse_way_group | ( | const OSMPBF< THandler >::PrimitiveGroup & | , |
const OSMPBF< THandler >::StringTable & | , | ||
void(Osmium::Handler::Base::*)(const shared_ptr< Osmium::OSM::Way const > &) | const | ||
) | [inline, private] |
void Osmium::Input::PBF< THandler >::parse_way_group | ( | const OSMPBF< THandler >::PrimitiveGroup & | group, |
const OSMPBF< THandler >::StringTable & | stringtable, | ||
T | |||
) | [inline, private] |
array_t Osmium::Input::PBF< THandler >::read_blob | ( | const int | size | ) | [inline, private] |
Read a (possibly compressed) blob of data. If the blob is compressed, it is uncompressed.
bool Osmium::Input::PBF< THandler >::read_blob_header | ( | ) | [inline, private] |
Read blob header by first reading the size and then the header
int64_t Osmium::Input::PBF< THandler >::m_date_factor [private] |
unsigned char Osmium::Input::PBF< THandler >::m_input_buffer[OSMPBF::max_uncompressed_blob_size] [private] |
OSMPBF::Blob Osmium::Input::PBF< THandler >::m_pbf_blob [private] |
OSMPBF::BlobHeader Osmium::Input::PBF< THandler >::m_pbf_blob_header [private] |
OSMPBF::PrimitiveBlock Osmium::Input::PBF< THandler >::m_pbf_primitive_block [private] |
unsigned char Osmium::Input::PBF< THandler >::m_unpack_buffer[OSMPBF::max_uncompressed_blob_size] [private] |