1#ifndef OSMIUM_OSM_RELATION_HPP
2#define OSMIUM_OSM_RELATION_HPP
50 template <
typename TDerived,
typename T>
69 const unsigned char*
endpos()
const {
73 template <
typename TMember>
83 const unsigned char*
next()
const {
133 const char*
role() const noexcept {
134 return reinterpret_cast<const char*
>(data() +
sizeof(
RelationMember));
163 template <
typename TDerived,
typename T>
180 return osmium::detail::subitem_of_type<RelationMemberList>(
begin(),
end());
185 return osmium::detail::subitem_of_type<const RelationMemberList>(
cbegin(),
cend());
190 return osmium::detail::subitem_of_type<const RelationMemberList>(
cbegin(),
cend());
OSMObject(osmium::memory::item_size_type size, osmium::item_type type)
Definition object.hpp:102
Definition relation.hpp:147
static constexpr bool is_compatible_to(osmium::item_type t) noexcept
Definition relation.hpp:151
RelationMemberList() noexcept=default
string_size_type m_role_size
Definition relation.hpp:63
OSMObject & get_object()
Definition relation.hpp:137
RelationMember(const RelationMember &)=delete
~RelationMember() noexcept=default
object_id_type m_ref
Definition relation.hpp:60
RelationMember(RelationMember &&)=delete
unsigned char * next()
Definition relation.hpp:76
const char * role() const noexcept
Definition relation.hpp:133
RelationMember & operator=(const RelationMember &)=delete
const unsigned char * next() const
Definition relation.hpp:83
RelationMember & set_ref(const osmium::object_id_type ref) noexcept
Definition relation.hpp:120
item_type type() const noexcept
Definition relation.hpp:125
void set_role_size(string_size_type size) noexcept
Definition relation.hpp:90
unsigned char * endpos()
Definition relation.hpp:65
unsigned_object_id_type positive_ref() const noexcept
Definition relation.hpp:116
RelationMember(const object_id_type ref=0, const item_type type=item_type(), const bool full=false) noexcept
Definition relation.hpp:98
static constexpr item_type collection_type
Definition relation.hpp:96
RelationMember & operator=(RelationMember &&)=delete
const OSMObject & get_object() const
Definition relation.hpp:141
uint16_t m_flags
Definition relation.hpp:62
const unsigned char * endpos() const
Definition relation.hpp:69
bool full_member() const noexcept
Definition relation.hpp:129
item_type m_type
Definition relation.hpp:61
object_id_type ref() const noexcept
Definition relation.hpp:112
RelationMemberList & members()
Get a reference to the member list.
Definition relation.hpp:179
Relation() noexcept
Definition relation.hpp:166
const RelationMemberList & cmembers() const
Get a const reference to the member list.
Definition relation.hpp:189
static constexpr bool is_compatible_to(osmium::item_type t) noexcept
Definition relation.hpp:174
static constexpr osmium::item_type itemtype
Definition relation.hpp:172
const RelationMemberList & members() const
Get a const reference to the member list.
Definition relation.hpp:184
Definition osm_object_builder.hpp:401
Definition osm_object_builder.hpp:228
Definition collection.hpp:47
Definition collection.hpp:181
iterator end() noexcept
Definition collection.hpp:224
const_iterator cend() const noexcept
Definition collection.hpp:232
const_iterator cbegin() const noexcept
Definition collection.hpp:228
iterator begin() noexcept
Definition collection.hpp:220
Classes for building OSM objects and other items in buffers.
Definition attr.hpp:62
constexpr std::size_t padded_length(std::size_t length) noexcept
Definition item.hpp:64
Namespace for everything in the Osmium library.
Definition assembler.hpp:53
uint16_t string_size_type
Definition types.hpp:59
uint64_t unsigned_object_id_type
Type for OSM object (node, way, or relation) IDs where we only allow positive IDs.
Definition types.hpp:46
item_type
Definition item_type.hpp:45
@ relation_member_list
Definition item_type.hpp:55
@ relation_member_list_with_full_members
Definition item_type.hpp:56
@ relation
Definition item_type.hpp:50
int64_t object_id_type
Type for OSM object (node, way, or relation) IDs.
Definition types.hpp:45