1 #ifndef OSMIUM_BUILDER_BUILDER_HPP 2 #define OSMIUM_BUILDER_BUILDER_HPP 74 m_item_offset(buffer.written()) {
78 assert(m_buffer.
builder_count() == 1 &&
"Only one sub-builder can be open at any time.");
81 assert(m_buffer.
builder_count() == 0 &&
"Only one builder can be open at any time.");
125 }
else if (m_parent) {
139 uint32_t
size() const noexcept {
147 template <
typename T>
164 std::copy_n(reinterpret_cast<const unsigned char*>(data), length, target);
177 std::copy_n(reinterpret_cast<const unsigned char*>(data), length, target);
178 target[length] =
'\0';
189 return append(str, static_cast<osmium::memory::item_size_type>(std::strlen(str) + 1));
235 #endif // OSMIUM_BUILDER_BUILDER_HPP Builder * m_parent
Definition: builder.hpp:60
Builder(osmium::memory::Buffer &buffer, Builder *parent, osmium::memory::item_size_type size)
Definition: builder.hpp:71
OSMIUM_DEPRECATED osmium::memory::item_size_type append_zero()
Definition: builder.hpp:199
#define OSMIUM_DEPRECATED
Definition: compatibility.hpp:50
bool is_aligned() const noexcept
Definition: buffer.hpp:287
osmium::memory::Buffer & buffer() noexcept
Return the buffer this builder is using.
Definition: builder.hpp:207
void add_item(const osmium::memory::Item &item)
Definition: builder.hpp:215
void add_size(osmium::memory::item_size_type size)
Definition: builder.hpp:132
uint32_t item_size_type
Definition: item.hpp:59
osmium::memory::item_size_type append_with_zero(const char *data, const osmium::memory::item_size_type length)
Definition: builder.hpp:175
void increment_builder_count() noexcept
Definition: buffer.hpp:232
OSMIUM_DEPRECATED void add_item(const osmium::memory::Item *item)
Definition: builder.hpp:224
constexpr const std::size_t align_bytes
Definition: item.hpp:62
item_size_type padded_size() const
Definition: item.hpp:165
Namespace for everything in the Osmium library.
Definition: assembler.hpp:53
T & add_item(const T &item)
Definition: buffer.hpp:483
Item & add_size(const item_size_type size) noexcept
Definition: item.hpp:121
T * reserve_space_for()
Definition: builder.hpp:148
uint8_t builder_count() const noexcept
Definition: buffer.hpp:241
unsigned char * reserve_space(std::size_t size)
Definition: builder.hpp:100
unsigned char * data() const noexcept
Definition: buffer.hpp:251
osmium::memory::item_size_type append(const char *str)
Definition: builder.hpp:188
unsigned char * reserve_space(const std::size_t size)
Definition: buffer.hpp:443
std::size_t m_item_offset
Definition: builder.hpp:61
item_size_type byte_size() const noexcept
Definition: item.hpp:161
~Builder() noexcept
Definition: builder.hpp:91
osmium::memory::Buffer & m_buffer
Definition: builder.hpp:59
Definition: buffer.hpp:98
void decrement_builder_count() noexcept
Definition: buffer.hpp:236
osmium::memory::item_size_type append(const char *data, const osmium::memory::item_size_type length)
Definition: builder.hpp:162
Builder(const Builder &)=delete
uint32_t size() const noexcept
Definition: builder.hpp:139
Definition: builder.hpp:57
Builder & operator=(const Builder &)=delete
void add_padding(bool self=false)
Definition: builder.hpp:117
osmium::memory::Item & item() const
Definition: builder.hpp:96