Libosmium: osmium::builder::OSMObjectBuilder< TDerived, T > Class Template Reference

Libosmium Fast and flexible C++ library for working with OpenStreetMap data

Loading...
Searching...
No Matches
Public Member Functions | Private Types | Private Member Functions | Static Private Attributes | List of all members
osmium::builder::OSMObjectBuilder< TDerived, T > Class Template Reference

`#include <osm_object_builder.hpp>`

Inheritance diagram for osmium::builder::OSMObjectBuilder< TDerived, T >:
[legend]
Collaboration diagram for osmium::builder::OSMObjectBuilder< TDerived, T >:
[legend]

## Public Member Functions
| OSMObjectBuilder (osmium::memory::Buffer &buffer, Builder *parent=nullptr)
T & | object () noexcept
const T & | cobject () const noexcept
TDerived & | set_user (const char *user, const string_size_type length)
TDerived & | set_user (const char *user)
TDerived & | set_user (const std::string &user)
void | add_tags (const std::initializer_list< std::pair< const char *, const char * > > &tags)
Public Member Functions inherited from osmium::builder::Builder
| Builder (const Builder &)=delete
| Builder (Builder &&)=delete
Builder & | operator= (const Builder &)=delete
Builder & | operator= (Builder &&)=delete
osmium::memory::Buffer & | buffer () noexcept
| Return the buffer this builder is using.
void | add_item (const osmium::memory::Item &item)

## Private Types
using | type = TDerived

## Private Member Functions
void | set_user_size (string_size_type size) noexcept

## Static Private Attributes
static constexpr const std::size_t | min_size_for_user = osmium::memory::padded_length(sizeof(string_size_type) + 1)

## Additional Inherited Members
Protected Member Functions inherited from osmium::builder::Builder
| Builder (osmium::memory::Buffer &buffer, Builder *parent, osmium::memory::item_size_type size)
| ~Builder () noexcept
unsigned char * | item_pos () const noexcept
osmium::memory::Item & | item () const noexcept
unsigned char * | reserve_space (std::size_t size)
void | add_padding (bool self=false)
void | add_size (osmium::memory::item_size_type size)
uint32_t | size () const noexcept
template<typename T>
T * | reserve_space_for ()
osmium::memory::item_size_type | append (const char *data, const osmium::memory::item_size_type length)
osmium::memory::item_size_type | append_with_zero (const char *data, const osmium::memory::item_size_type length)
osmium::memory::item_size_type | append (const char *str)

## Member Typedef Documentation

## ◆ type

template<typename TDerived, typename T>

using osmium::builder::OSMObjectBuilder< TDerived, T >::type = TDerived
| private

## Constructor & Destructor Documentation

## ◆ OSMObjectBuilder()

template<typename TDerived, typename T>

osmium::builder::OSMObjectBuilder< TDerived, T >::OSMObjectBuilder | ( | osmium::memory::Buffer & | buffer,
|  | Builder * | parent = nullptr )
| inlineexplicit

## Member Function Documentation

## ◆ add_tags()

template<typename TDerived, typename T>

void osmium::builder::OSMObjectBuilder< TDerived, T >::add_tags | ( | const std::initializer_list< std::pair< const char *, const char * > > & | tags | ) |
| inline

## ◆ cobject()

template<typename TDerived, typename T>

const T & osmium::builder::OSMObjectBuilder< TDerived, T >::cobject | ( |  | ) | const
| inlinenoexcept

Get a const reference to the object being built.

Note that this reference will be invalidated by every action on the builder that might make the buffer grow. This includes calls to set_user() and any time a new sub-builder is created.

## ◆ object()

template<typename TDerived, typename T>

T & osmium::builder::OSMObjectBuilder< TDerived, T >::object | ( |  | ) |
| inlinenoexcept

Get a reference to the object being built.

Note that this reference will be invalidated by every action on the builder that might make the buffer grow. This includes calls to set_user() and any time a new sub-builder is created.

## ◆ set_user() [1/3]

template<typename TDerived, typename T>

TDerived & osmium::builder::OSMObjectBuilder< TDerived, T >::set_user | ( | const char * | user | ) |
| inline

Set user name.

Parameters

  user | Pointer to \0-terminated user name.

Precondition
  strlen(user) < 2^16 - 1

## ◆ set_user() [2/3]

template<typename TDerived, typename T>

TDerived & osmium::builder::OSMObjectBuilder< TDerived, T >::set_user | ( | const char * | user,
|  | const string_size_type | length )
| inline

Set user name.

Parameters

  user | Pointer to user name.
  length | Length of user name (without \0 termination).

## ◆ set_user() [3/3]

template<typename TDerived, typename T>

TDerived & osmium::builder::OSMObjectBuilder< TDerived, T >::set_user | ( | const std::string & | user | ) |
| inline

Set user name.

Parameters

  user | User name.

Precondition
  user.size() < 2^16 - 1

## ◆ set_user_size()

template<typename TDerived, typename T>

void osmium::builder::OSMObjectBuilder< TDerived, T >::set_user_size | ( | string_size_type | size | ) |
| inlineprivatenoexcept

## Member Data Documentation

## ◆ min_size_for_user

template<typename TDerived, typename T>

const std::size_t osmium::builder::OSMObjectBuilder< TDerived, T >::min_size_for_user = osmium::memory::padded_length(sizeof(string_size_type) + 1)
| staticconstexprprivate

The documentation for this class was generated from the following file:

- include/osmium/builder/osm_object_builder.hpp