Libosmium  2.11.0
Fast and flexible C++ library for working with OpenStreetMap data
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Private Types | Static Private Attributes | List of all members
osmium::builder::OSMObjectBuilder< TDerived, T > Singleton Reference

#include <osm_object_builder.hpp>

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

Public Member Functions

 OSMObjectBuilder (osmium::memory::Buffer &buffer, Builder *parent=nullptr)
 
T & object () 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)
 
template<typename... TArgs>
OSMIUM_DEPRECATED void add_user (TArgs &&...args)
 
void add_tags (const std::initializer_list< std::pair< const char *, const char * >> &tags)
 
- Public Member Functions inherited from osmium::builder::Builder
osmium::memory::Bufferbuffer () noexcept
 Return the buffer this builder is using. More...
 
void add_item (const osmium::memory::Item &item)
 
OSMIUM_DEPRECATED void add_item (const osmium::memory::Item *item)
 

Private Types

using type = TDerived
 

Static Private Attributes

static constexpr const 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
 
osmium::memory::Itemitem () const
 
unsigned char * reserve_space (size_t size)
 
void add_padding (bool self=false)
 
void add_size (uint32_t 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 (const char *str)
 
osmium::memory::item_size_type append_zero ()
 

Member Typedef Documentation

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

Constructor & Destructor Documentation

template<typename TDerived, typename T>
osmium::builder::OSMObjectBuilder< TDerived, T >::OSMObjectBuilder ( osmium::memory::Buffer buffer,
Builder parent = nullptr 
)
inlineexplicit

Member Function Documentation

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
template<typename TDerived, typename T>
template<typename... TArgs>
OSMIUM_DEPRECATED void osmium::builder::OSMObjectBuilder< TDerived, T >::add_user ( TArgs &&...  args)
inline
Deprecated:
Use set_user(...) instead.
template<typename TDerived, typename T>
T& osmium::builder::OSMObjectBuilder< TDerived, T >::object ( )
inlinenoexcept

Get a reference to the object buing 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.

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
userPointer to user name.
lengthLength of user name (without \0 termination).
template<typename TDerived, typename T>
TDerived& osmium::builder::OSMObjectBuilder< TDerived, T >::set_user ( const char *  user)
inline

Set user name.

Parameters
userPointer to \0-terminated user name.
template<typename TDerived, typename T>
TDerived& osmium::builder::OSMObjectBuilder< TDerived, T >::set_user ( const std::string &  user)
inline

Set user name.

Parameters
userUser name.

Member Data Documentation

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

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