Loading...
Searching...
No Matches
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`
| ) |  |

inline explicit

## 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

inline noexcept

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 | ( |  | ) |

inline noexcept

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 | ) |

inline private noexcept

## Member Data Documentation

## min_size_for_user

template<typename TDerived , typename T >

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

static constexpr private

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

- include/osmium/builder/osm_object_builder.hpp