1 #ifndef OSMIUM_BUILDER_BUILDER_HPP
2 #define OSMIUM_BUILDER_BUILDER_HPP
70 assert(
buffer.is_aligned());
72 assert(
m_buffer.builder_count() == 1 &&
"Only one sub-builder can be open at any time.");
75 assert(
m_buffer.builder_count() == 0 &&
"Only one builder can be open at any time.");
137 uint32_t
size() const noexcept {
145 template <
typename T>
162 std::copy_n(
reinterpret_cast<const unsigned char*
>(data), length, target);
175 std::copy_n(
reinterpret_cast<const unsigned char*
>(data), length, target);
176 target[length] =
'\0';
211 osmium::memory::Buffer&
buffer() noexcept {
Definition: builder.hpp:57
osmium::memory::item_size_type append(const char *data, const osmium::memory::item_size_type length)
Definition: builder.hpp:160
uint32_t size() const noexcept
Definition: builder.hpp:137
osmium::memory::item_size_type append(const char *str)
Definition: builder.hpp:186
void add_padding(bool self=false)
Definition: builder.hpp:115
OSMIUM_DEPRECATED void add_item(const osmium::memory::Item *item)
Definition: builder.hpp:228
Builder(osmium::memory::Buffer &buffer, Builder *parent, osmium::memory::item_size_type size)
Definition: builder.hpp:65
void add_size(osmium::memory::item_size_type size)
Definition: builder.hpp:130
Builder(Builder &&)=delete
osmium::memory::Buffer & m_buffer
Definition: builder.hpp:59
unsigned char * reserve_space(std::size_t size)
Definition: builder.hpp:98
Builder & operator=(Builder &&)=delete
T * reserve_space_for()
Definition: builder.hpp:146
osmium::memory::Buffer & buffer() noexcept
Return the buffer this builder is using.
Definition: builder.hpp:211
osmium::memory::Item & item() const noexcept
Definition: builder.hpp:94
OSMIUM_DEPRECATED osmium::memory::item_size_type append_zero()
Definition: builder.hpp:197
Builder(const Builder &)=delete
std::size_t m_item_offset
Definition: builder.hpp:61
osmium::memory::item_size_type append_with_zero(const char *data, const osmium::memory::item_size_type length)
Definition: builder.hpp:173
void add_item(const osmium::memory::Item &item)
Definition: builder.hpp:219
unsigned char * item_pos() const noexcept
Definition: builder.hpp:90
Builder * m_parent
Definition: builder.hpp:60
Builder & operator=(const Builder &)=delete
~Builder() noexcept
Definition: builder.hpp:85
Item & add_size(const item_size_type size) noexcept
Definition: item.hpp:121
item_size_type byte_size() const noexcept
Definition: item.hpp:163
item_size_type padded_size() const
Definition: item.hpp:167
#define OSMIUM_DEPRECATED
Definition: compatibility.hpp:51
@ align_bytes
Definition: item.hpp:61
uint32_t item_size_type
Definition: item.hpp:57
Namespace for everything in the Osmium library.
Definition: assembler.hpp:53