| FlatBuffers An open source project by FPL.

Classes | Public Member Functions | Static Public Attributes | Protected Types | Protected Member Functions | Protected Attributes | List of all members
flatbuffers::FlatBufferBuilder Class Reference
Flatbuffers_cpp_api

Helper class to hold data needed in creation of a FlatBuffer. More...

`#include <flatbuffers.h>`

## Detailed Description

Helper class to hold data needed in creation of a FlatBuffer.

To serialize data, you typically call one of the `Create*()` functions in the generated code, which in turn call a sequence of `StartTable`/ `PushElement`/`AddElement`/`EndTable`, or the builtin `CreateString`/ `CreateVector` functions. Do this is depth-first order to build up a tree to the root. `Finish()` wraps up the buffer ready for transport.

## Classes
struct | FieldLoc
struct | StringOffsetCompare

## Public Member Functions
void | Clear ()
| Reset all the state in this FlatBufferBuilder so it can be reused to construct another buffer.
Offset< String > | CreateSharedString (const char *str)
| Store a string in the buffer, which null-terminated. More...
Offset< String > | CreateSharedString (const char *str, size_t len)
| Store a string in the buffer, which can contain any binary data. More...
Offset< String > | CreateSharedString (const std::string &str)
| Store a string in the buffer, which can contain any binary data. More...
Offset< String > | CreateSharedString (const String *str)
| Store a string in the buffer, which can contain any binary data. More...
Offset< String > | CreateString (char *str)
| Store a string in the buffer, which is null-terminated. More...
Offset< String > | CreateString (const char *str)
| Store a string in the buffer, which is null-terminated. More...
Offset< String > | CreateString (const char *str, size_t len)
| Store a string in the buffer, which can contain any binary data. More...
Offset< String > | CreateString (const std::string &str)
| Store a string in the buffer, which can contain any binary data. More...
Offset< String > | CreateString (const String *str)
| Store a string in the buffer, which can contain any binary data. More...
template<typename T >
Offset< String > | CreateString (const T &str)
| Store a string in the buffer, which can contain any binary data. More...
Offset< String > | CreateString (flatbuffers::string_view str)
| Store a string in the buffer, which can contain any binary data. More...
template<typename T >
Offset< const T * > | CreateStruct (const T &structobj)
| Write a struct by itself, typically to be part of a union.
uoffset_t | CreateUninitializedVector (size_t len, size_t elemsize, uint8_t **buf)
| Specialized version of `CreateVector` for non-copying use cases. More...
template<typename T >
Offset< Vector< T > > | CreateUninitializedVector (size_t len, T **buf)
| Specialized version of `CreateVector` for non-copying use cases. More...
template<typename T >
Offset< Vector< const T * > > | CreateUninitializedVectorOfStructs (size_t len, T **buf)
template<typename T >
Offset< Vector< Offset< T > > > | CreateVector (const Offset< T > *v, size_t len)
Offset< Vector< uint8_t > > | CreateVector (const std::vector< bool > &v)
template<typename T >
Offset< Vector< T > > | CreateVector (const std::vector< T > &v)
| Serialize a `std::vector` into a FlatBuffer `vector`. More...
template<typename T >
Offset< Vector< T > > | CreateVector (const T *v, size_t len)
| Serialize an array into a FlatBuffer `vector`. More...
template<typename T >
Offset< Vector< T > > | CreateVector (size_t vector_size, const std::function< T(size_t i)> &f)
| Serialize values returned by a function into a FlatBuffer `vector`. More...
template<typename T , typename F , typename S >
Offset< Vector< T > > | CreateVector (size_t vector_size, F f, S *state)
| Serialize values returned by a function into a FlatBuffer `vector`. More...
template<typename T , typename S >
Offset< Vector< const T * > > | CreateVectorOfNativeStructs (const S *v, size_t len)
| Serialize an array of native structs into a FlatBuffer `vector`. More...
template<typename T , typename S >
Offset< Vector< const T * > > | CreateVectorOfNativeStructs (const std::vector< S > &v)
| Serialize a `std::vector` of native structs into a FlatBuffer `vector`. More...
template<typename T , typename S >
Offset< Vector< const T * > > | CreateVectorOfSortedNativeStructs (S *v, size_t len)
| Serialize an array of native structs into a FlatBuffer `vector` in sorted order. More...
template<typename T , typename S >
Offset< Vector< const T * > > | CreateVectorOfSortedNativeStructs (std::vector< S > *v)
| Serialize a `std::vector` of native structs into a FlatBuffer `vector` in sorted order. More...
template<typename T >
Offset< Vector< const T * > > | CreateVectorOfSortedStructs (std::vector< T > *v)
| Serialize a `std::vector` of structs into a FlatBuffer `vector` in sorted order. More...
template<typename T >
Offset< Vector< const T * > > | CreateVectorOfSortedStructs (T *v, size_t len)
| Serialize an array of structs into a FlatBuffer `vector` in sorted order. More...
template<typename T >
Offset< Vector< Offset< T > > > | CreateVectorOfSortedTables (Offset< T > *v, size_t len)
| Serialize an array of `table` offsets as a `vector` in the buffer in sorted order. More...
template<typename T >
Offset< Vector< Offset< T > > > | CreateVectorOfSortedTables (std::vector< Offset< T > > *v)
| Serialize an array of `table` offsets as a `vector` in the buffer in sorted order. More...
Offset< Vector< Offset< String > > > | CreateVectorOfStrings (const std::vector< std::string > &v)
| Serialize a `std::vector<std::string>` into a FlatBuffer `vector`. More...
template<typename T , typename Alloc >
Offset< Vector< const T * > > | CreateVectorOfStructs (const std::vector< T, Alloc > &v)
| Serialize a `std::vector` of structs into a FlatBuffer `vector`. More...
template<typename T >
Offset< Vector< const T * > > | CreateVectorOfStructs (const T *v, size_t len)
| Serialize an array of structs into a FlatBuffer `vector`. More...
template<typename T >
Offset< Vector< const T * > > | CreateVectorOfStructs (size_t vector_size, const std::function< void(size_t i, T *)> &filler)
| Serialize an array of structs into a FlatBuffer `vector`. More...
template<typename T , typename F , typename S >
Offset< Vector< const T * > > | CreateVectorOfStructs (size_t vector_size, F f, S *state)
| Serialize an array of structs into a FlatBuffer `vector`. More...
template<typename T , typename U >
Offset< Vector< T > > | CreateVectorScalarCast (const U *v, size_t len)
void | DedupVtables (bool dedup)
| By default vtables are deduped in order to save space. More...
template<typename T >
void | Finish (Offset< T > root, const char *file_identifier=nullptr)
| Finish serializing a buffer by writing the root offset. More...
template<typename T >
void | FinishSizePrefixed (Offset< T > root, const char *file_identifier=nullptr)
| Finish a buffer with a 32 bit size field pre-fixed (size of the buffer following the size field). More...
| FlatBufferBuilder (FlatBufferBuilder &&other) FlatBufferBuilder(FlatBufferBuilder &other)
| Move constructor for FlatBufferBuilder.
| FlatBufferBuilder (size_t initial_size=1024, Allocator *allocator=nullptr, bool own_allocator=false, size_t buffer_minalign=AlignOf< largest_scalar_t >())
| Default constructor for FlatBufferBuilder. More...
| FLATBUFFERS_ATTRIBUTE (deprecated("use Release() instead")) DetachedBuffer ReleaseBufferPointer()
| Get the released pointer to the serialized buffer. More...
void | ForceDefaults (bool fd)
| In order to save space, fields that are set to their default value don't get serialized into the buffer. More...
size_t | GetBufferMinAlignment ()
| get the minimum alignment this buffer needs to be accessed properly. More...
uint8_t * | GetBufferPointer () const
| Get the serialized buffer (after you call `Finish()`). More...
uint8_t * | GetCurrentBufferPointer () const
| Get a pointer to an unfinished buffer. More...
uoffset_t | GetSize () const
| The current size of the serialized buffer, counting from the end. More...
FlatBufferBuilder & | operator= (FlatBufferBuilder &&other)
| Move assignment operator for FlatBufferBuilder.
DetachedBuffer | Release ()
| Get the released DetachedBuffer. More...
uint8_t * | ReleaseRaw (size_t &size, size_t &offset)
| Get the released pointer to the serialized buffer. More...
void | Reset ()
void | Swap (FlatBufferBuilder &other)
void | SwapBufAllocator (FlatBufferBuilder &other)

## Static Public Attributes
static const size_t | kFileIdentifierLength = 4
| The length of a FlatBuffer file header.

## Protected Types
typedef std::set< Offset< String >, StringOffsetCompare > | StringOffsetMap

## Protected Member Functions
void | Finish (uoffset_t root, const char *file_identifier, bool size_prefix)
| FlatBufferBuilder (const FlatBufferBuilder &)
FlatBufferBuilder & | operator= (const FlatBufferBuilder &)

## Protected Attributes
vector_downward | buf_
bool | dedup_vtables_
bool | finished
bool | force_defaults_
voffset_t | max_voffset_
size_t | minalign_
bool | nested
uoffset_t | num_field_loc
StringOffsetMap * | string_pool

## Constructor & Destructor Documentation

## ◆ FlatBufferBuilder()

flatbuffers::FlatBufferBuilder::FlatBufferBuilder | ( | size_t | initial_size = `1024`,
|  | Allocator * | allocator = `nullptr`,
|  | bool | own_allocator = `false`,
|  | size_t | buffer_minalign = `AlignOf<largest_scalar_t>()`
| ) |  |
| inline explicit

Default constructor for FlatBufferBuilder.

Parameters

  [in] | initial_size | The initial size of the buffer, in bytes. Defaults to `1024`.
  [in] | allocator | An `Allocator` to use. If null will use `DefaultAllocator`.
  [in] | own_allocator | Whether the builder/vector should own the allocator. Defaults to / `false`.
  [in] | buffer_minalign | Force the buffer to be aligned to the given minimum alignment upon reallocation. Only needed if you intend to store types with custom alignment AND you wish to read the buffer in-place directly after creation.

## Member Function Documentation

## ◆ CreateSharedString() [1/4]

Offset< String > flatbuffers::FlatBufferBuilder::CreateSharedString | ( | const char * | str | ) |
| inline

Store a string in the buffer, which null-terminated.

If a string with this exact contents has already been serialized before, instead simply returns the offset of the existing string.

Parameters

  [in] | str | A const char pointer to a C-string to add to the buffer.

Returns
  Returns the offset in the buffer where the string starts.

## ◆ CreateSharedString() [2/4]

Offset< String > flatbuffers::FlatBufferBuilder::CreateSharedString | ( | const char * | str,
|  | size_t | len
| ) |  |
| inline

Store a string in the buffer, which can contain any binary data.

If a string with this exact contents has already been serialized before, instead simply returns the offset of the existing string.

Parameters

  [in] | str | A const char pointer to the data to be stored as a string.
  [in] | len | The number of bytes that should be stored from `str`.

Returns
  Returns the offset in the buffer where the string starts.

## ◆ CreateSharedString() [3/4]

Offset< String > flatbuffers::FlatBufferBuilder::CreateSharedString | ( | const std::string & | str | ) |
| inline

Store a string in the buffer, which can contain any binary data.

If a string with this exact contents has already been serialized before, instead simply returns the offset of the existing string.

Parameters

  [in] | str | A const reference to a std::string to store in the buffer.

Returns
  Returns the offset in the buffer where the string starts.

## ◆ CreateSharedString() [4/4]

Offset< String > flatbuffers::FlatBufferBuilder::CreateSharedString | ( | const String * | str | ) |
| inline

Store a string in the buffer, which can contain any binary data.

If a string with this exact contents has already been serialized before, instead simply returns the offset of the existing string.

Parameters

  [in] | str | A const pointer to a `String` struct to add to the buffer.

Returns
  Returns the offset in the buffer where the string starts

## ◆ CreateString() [1/7]

Offset< String > flatbuffers::FlatBufferBuilder::CreateString | ( | char * | str | ) |
| inline

Store a string in the buffer, which is null-terminated.

Parameters

  [in] | str | A char pointer to a C-string to add to the buffer.

Returns
  Returns the offset in the buffer where the string starts.

## ◆ CreateString() [2/7]

Offset< String > flatbuffers::FlatBufferBuilder::CreateString | ( | const char * | str | ) |
| inline

Store a string in the buffer, which is null-terminated.

Parameters

  [in] | str | A const char pointer to a C-string to add to the buffer.

Returns
  Returns the offset in the buffer where the string starts.

## ◆ CreateString() [3/7]

Offset< String > flatbuffers::FlatBufferBuilder::CreateString | ( | const char * | str,
|  | size_t | len
| ) |  |
| inline

Store a string in the buffer, which can contain any binary data.

Parameters

  [in] | str | A const char pointer to the data to be stored as a string.
  [in] | len | The number of bytes that should be stored from `str`.

Returns
  Returns the offset in the buffer where the string starts.

## ◆ CreateString() [4/7]

Offset< String > flatbuffers::FlatBufferBuilder::CreateString | ( | const std::string & | str | ) |
| inline

Store a string in the buffer, which can contain any binary data.

Parameters

  [in] | str | A const reference to a std::string to store in the buffer.

Returns
  Returns the offset in the buffer where the string starts.

## ◆ CreateString() [5/7]

Offset< String > flatbuffers::FlatBufferBuilder::CreateString | ( | const String * | str | ) |
| inline

Store a string in the buffer, which can contain any binary data.

Parameters

  [in] | str | A const pointer to a `String` struct to add to the buffer.

Returns
  Returns the offset in the buffer where the string starts

## ◆ CreateString() [6/7]

template<typename T >

Offset< String > flatbuffers::FlatBufferBuilder::CreateString | ( | const T & | str | ) |
| inline

Store a string in the buffer, which can contain any binary data.

Parameters

  [in] | str | A const reference to a std::string like type with support of T::c_str() and T::length() to store in the buffer.

Returns
  Returns the offset in the buffer where the string starts.

## ◆ CreateString() [7/7]

Offset< String > flatbuffers::FlatBufferBuilder::CreateString | ( | flatbuffers::string_view | str | ) |
| inline

Store a string in the buffer, which can contain any binary data.

Parameters

  [in] | str | A const string_view to copy in to the buffer.

Returns
  Returns the offset in the buffer where the string starts.

## ◆ CreateUninitializedVector() [1/2]

uoffset_t flatbuffers::FlatBufferBuilder::CreateUninitializedVector | ( | size_t | len,
|  | size_t | elemsize,
|  | uint8_t ** | buf
| ) |  |
| inline

Specialized version of `CreateVector` for non-copying use cases.

Write the data any time later to the returned buffer pointer `buf`.

Parameters

  [in] | len | The number of elements to store in the `vector`.
  [in] | elemsize | The size of each element in the `vector`.
  [out] | buf | A pointer to a `uint8_t` pointer that can be written to at a later time to serialize the data into a `vector` in the buffer.

## ◆ CreateUninitializedVector() [2/2]

template<typename T >

Offset< Vector< T > > flatbuffers::FlatBufferBuilder::CreateUninitializedVector | ( | size_t | len,
|  | T ** | buf
| ) |  |
| inline

Specialized version of `CreateVector` for non-copying use cases.

Write the data any time later to the returned buffer pointer `buf`.

Template Parameters

  T | The data type of the data that will be stored in the buffer as a `vector`.

Parameters

  [in] | len | The number of elements to store in the `vector`.
  [out] | buf | A pointer to a pointer of type `T` that can be written to at a later time to serialize the data into a `vector` in the buffer.

## ◆ CreateVector() [1/4]

template<typename T >

Offset< Vector< T > > flatbuffers::FlatBufferBuilder::CreateVector | ( | const std::vector< T > & | v | ) |
| inline

Serialize a `std::vector` into a FlatBuffer `vector`.

Template Parameters

  T | The data type of the `std::vector` elements.

Parameters

  v | A const reference to the `std::vector` to serialize into the buffer as a `vector`.

Returns
  Returns a typed `Offset` into the serialized data indicating where the vector is stored.

## ◆ CreateVector() [2/4]

template<typename T >

Offset< Vector< T > > flatbuffers::FlatBufferBuilder::CreateVector | ( | const T * | v,
|  | size_t | len
| ) |  |
| inline

Serialize an array into a FlatBuffer `vector`.

Template Parameters

  T | The data type of the array elements.

Parameters

  [in] | v | A pointer to the array of type `T` to serialize into the buffer as a `vector`.
  [in] | len | The number of elements to serialize.

Returns
  Returns a typed `Offset` into the serialized data indicating where the vector is stored.

## ◆ CreateVector() [3/4]

template<typename T >

Offset< Vector< T > > flatbuffers::FlatBufferBuilder::CreateVector | ( | size_t | vector_size,
|  | const std::function< T(size_t i)> & | f
| ) |  |
| inline

Serialize values returned by a function into a FlatBuffer `vector`.

This is a convenience function that takes care of iteration for you.

Template Parameters

  T | The data type of the `std::vector` elements.

Parameters

  f | A function that takes the current iteration 0..vector_size-1 and returns any type that you can construct a FlatBuffers vector out of.

Returns
  Returns a typed `Offset` into the serialized data indicating where the vector is stored.

## ◆ CreateVector() [4/4]

template<typename T , typename F , typename S >

Offset< Vector< T > > flatbuffers::FlatBufferBuilder::CreateVector | ( | size_t | vector_size,
|  | F | f,
|  | S * | state
| ) |  |
| inline

Serialize values returned by a function into a FlatBuffer `vector`.

This is a convenience function that takes care of iteration for you.

Template Parameters

  T | The data type of the `std::vector` elements.

Parameters

  f | A function that takes the current iteration 0..vector_size-1, and the state parameter returning any type that you can construct a FlatBuffers vector out of.
  state | State passed to f.

Returns
  Returns a typed `Offset` into the serialized data indicating where the vector is stored.

## ◆ CreateVectorOfNativeStructs() [1/2]

template<typename T , typename S >

Offset< Vector< const T * > > flatbuffers::FlatBufferBuilder::CreateVectorOfNativeStructs | ( | const S * | v,
|  | size_t | len
| ) |  |
| inline

Serialize an array of native structs into a FlatBuffer `vector`.

Template Parameters

  T | The data type of the struct array elements.
  S | The data type of the native struct array elements.

Parameters

  [in] | v | A pointer to the array of type `S` to serialize into the buffer as a `vector`.
  [in] | len | The number of elements to serialize.

Returns
  Returns a typed `Offset` into the serialized data indicating where the vector is stored.

## ◆ CreateVectorOfNativeStructs() [2/2]

template<typename T , typename S >

Offset< Vector< const T * > > flatbuffers::FlatBufferBuilder::CreateVectorOfNativeStructs | ( | const std::vector< S > & | v | ) |
| inline

Serialize a `std::vector` of native structs into a FlatBuffer `vector`.

Template Parameters

  T | The data type of the `std::vector` struct elements.
  S | The data type of the `std::vector` native struct elements.

Parameters

  [in] | v | A const reference to the `std::vector` of structs to serialize into the buffer as a `vector`.

Returns
  Returns a typed `Offset` into the serialized data indicating where the vector is stored.

## ◆ CreateVectorOfSortedNativeStructs() [1/2]

template<typename T , typename S >

Offset< Vector< const T * > > flatbuffers::FlatBufferBuilder::CreateVectorOfSortedNativeStructs | ( | S * | v,
|  | size_t | len
| ) |  |
| inline

Serialize an array of native structs into a FlatBuffer `vector` in sorted order.

Template Parameters

  T | The data type of the struct array elements.
  S | The data type of the native struct array elements.

Parameters

  [in] | v | A pointer to the array of type `S` to serialize into the buffer as a `vector`.
  [in] | len | The number of elements to serialize.

Returns
  Returns a typed `Offset` into the serialized data indicating where the vector is stored.

## ◆ CreateVectorOfSortedNativeStructs() [2/2]

template<typename T , typename S >

Offset< Vector< const T * > > flatbuffers::FlatBufferBuilder::CreateVectorOfSortedNativeStructs | ( | std::vector< S > * | v | ) |
| inline

Serialize a `std::vector` of native structs into a FlatBuffer `vector` in sorted order.

Template Parameters

  T | The data type of the `std::vector` struct elements.
  S | The data type of the `std::vector` native struct elements.

Parameters

  [in] | v | A const reference to the `std::vector` of structs to serialize into the buffer as a `vector`.

Returns
  Returns a typed `Offset` into the serialized data indicating where the vector is stored.

## ◆ CreateVectorOfSortedStructs() [1/2]

template<typename T >

Offset< Vector< const T * > > flatbuffers::FlatBufferBuilder::CreateVectorOfSortedStructs | ( | std::vector< T > * | v | ) |
| inline

Serialize a `std::vector` of structs into a FlatBuffer `vector` in sorted order.

Template Parameters

  T | The data type of the `std::vector` struct elements.

Parameters

  [in] | v | A const reference to the `std::vector` of structs to serialize into the buffer as a `vector`.

Returns
  Returns a typed `Offset` into the serialized data indicating where the vector is stored.

## ◆ CreateVectorOfSortedStructs() [2/2]

template<typename T >

Offset< Vector< const T * > > flatbuffers::FlatBufferBuilder::CreateVectorOfSortedStructs | ( | T * | v,
|  | size_t | len
| ) |  |
| inline

Serialize an array of structs into a FlatBuffer `vector` in sorted order.

Template Parameters

  T | The data type of the struct array elements.

Parameters

  [in] | v | A pointer to the array of type `T` to serialize into the buffer as a `vector`.
  [in] | len | The number of elements to serialize.

Returns
  Returns a typed `Offset` into the serialized data indicating where the vector is stored.

## ◆ CreateVectorOfSortedTables() [1/2]

template<typename T >

Offset< Vector< Offset< T > > > flatbuffers::FlatBufferBuilder::CreateVectorOfSortedTables | ( | Offset< T > * | v,
|  | size_t | len
| ) |  |
| inline

Serialize an array of `table` offsets as a `vector` in the buffer in sorted order.

Template Parameters

  T | The data type that the offset refers to.

Parameters

  [in] | v | An array of type `Offset<T>` that contains the `table` offsets to store in the buffer in sorted order.
  [in] | len | The number of elements to store in the `vector`.

Returns
  Returns a typed `Offset` into the serialized data indicating where the vector is stored.

## ◆ CreateVectorOfSortedTables() [2/2]

template<typename T >

Offset< Vector< Offset< T > > > flatbuffers::FlatBufferBuilder::CreateVectorOfSortedTables | ( | std::vector< Offset< T > > * | v | ) |
| inline

Serialize an array of `table` offsets as a `vector` in the buffer in sorted order.

Template Parameters

  T | The data type that the offset refers to.

Parameters

  [in] | v | An array of type `Offset<T>` that contains the `table` offsets to store in the buffer in sorted order.

Returns
  Returns a typed `Offset` into the serialized data indicating where the vector is stored.

## ◆ CreateVectorOfStrings()

Offset< Vector< Offset< String > > > flatbuffers::FlatBufferBuilder::CreateVectorOfStrings | ( | const std::vector< std::string > & | v | ) |
| inline

Serialize a `std::vector<std::string>` into a FlatBuffer `vector`.

This is a convenience function for a common case.

Parameters

  v | A const reference to the `std::vector` to serialize into the buffer as a `vector`.

Returns
  Returns a typed `Offset` into the serialized data indicating where the vector is stored.

## ◆ CreateVectorOfStructs() [1/4]

template<typename T , typename Alloc >

Offset< Vector< const T * > > flatbuffers::FlatBufferBuilder::CreateVectorOfStructs | ( | const std::vector< T, Alloc > & | v | ) |
| inline

Serialize a `std::vector` of structs into a FlatBuffer `vector`.

Template Parameters

  T | The data type of the `std::vector` struct elements.

Parameters

  [in] | v | A const reference to the `std::vector` of structs to serialize into the buffer as a `vector`.

Returns
  Returns a typed `Offset` into the serialized data indicating where the vector is stored.

## ◆ CreateVectorOfStructs() [2/4]

template<typename T >

Offset< Vector< const T * > > flatbuffers::FlatBufferBuilder::CreateVectorOfStructs | ( | const T * | v,
|  | size_t | len
| ) |  |
| inline

Serialize an array of structs into a FlatBuffer `vector`.

Template Parameters

  T | The data type of the struct array elements.

Parameters

  [in] | v | A pointer to the array of type `T` to serialize into the buffer as a `vector`.
  [in] | len | The number of elements to serialize.

Returns
  Returns a typed `Offset` into the serialized data indicating where the vector is stored.

## ◆ CreateVectorOfStructs() [3/4]

template<typename T >

Offset< Vector< const T * > > flatbuffers::FlatBufferBuilder::CreateVectorOfStructs | ( | size_t | vector_size,
|  | const std::function< void(size_t i, T *)> & | filler
| ) |  |
| inline

Serialize an array of structs into a FlatBuffer `vector`.

Template Parameters

  T | The data type of the struct array elements.

Parameters

  [in] | filler | A function that takes the current iteration 0..vector_size-1 and a pointer to the struct that must be filled.

Returns
  Returns a typed `Offset` into the serialized data indicating where the vector is stored. This is mostly useful when flatbuffers are generated with mutation accessors.

## ◆ CreateVectorOfStructs() [4/4]

template<typename T , typename F , typename S >

Offset< Vector< const T * > > flatbuffers::FlatBufferBuilder::CreateVectorOfStructs | ( | size_t | vector_size,
|  | F | f,
|  | S * | state
| ) |  |
| inline

Serialize an array of structs into a FlatBuffer `vector`.

Template Parameters

  T | The data type of the struct array elements.

Parameters

  [in] | f | A function that takes the current iteration 0..vector_size-1, a pointer to the struct that must be filled and the state argument.
  [in] | state | Arbitrary state to pass to f.

Returns
  Returns a typed `Offset` into the serialized data indicating where the vector is stored. This is mostly useful when flatbuffers are generated with mutation accessors.

## ◆ DedupVtables()

void flatbuffers::FlatBufferBuilder::DedupVtables | ( | bool | dedup | ) |
| inline

By default vtables are deduped in order to save space.

Parameters

  [in] | dedup | When set to `true`, dedup vtables.

## ◆ Finish()

template<typename T >

void flatbuffers::FlatBufferBuilder::Finish | ( | Offset< T > | root,
|  | const char * | file_identifier = `nullptr`
| ) |  |
| inline

Finish serializing a buffer by writing the root offset.

Parameters

  [in] | file_identifier | If a `file_identifier` is given, the buffer will be prefixed with a standard FlatBuffers file header.

## ◆ FinishSizePrefixed()

template<typename T >

void flatbuffers::FlatBufferBuilder::FinishSizePrefixed | ( | Offset< T > | root,
|  | const char * | file_identifier = `nullptr`
| ) |  |
| inline

Finish a buffer with a 32 bit size field pre-fixed (size of the buffer following the size field).

These buffers are NOT compatible with standard buffers created by Finish, i.e. you can't call GetRoot on them, you have to use GetSizePrefixedRoot instead. All >32 bit quantities in this buffer will be aligned when the whole size pre-fixed buffer is aligned. These kinds of buffers are useful for creating a stream of FlatBuffers.

## ◆ FLATBUFFERS_ATTRIBUTE()

flatbuffers::FlatBufferBuilder::FLATBUFFERS_ATTRIBUTE | ( | deprecated("use Release() instead") |  | ) |
| inline

Get the released pointer to the serialized buffer.

Warning
  Do NOT attempt to use this FlatBufferBuilder afterwards!

Returns
  A `FlatBuffer` that owns the buffer and its allocator and behaves similar to a `unique_ptr` with a deleter.

## ◆ ForceDefaults()

void flatbuffers::FlatBufferBuilder::ForceDefaults | ( | bool | fd | ) |
| inline

In order to save space, fields that are set to their default value don't get serialized into the buffer.

Parameters

  [in] | fd | When set to `true`, always serializes default values that are set. Optional fields which are not set explicitly, will still not be serialized.

## ◆ GetBufferMinAlignment()

size_t flatbuffers::FlatBufferBuilder::GetBufferMinAlignment | ( |  | ) |
| inline

get the minimum alignment this buffer needs to be accessed properly.

This is only known once all elements have been written (after you call Finish()). You can use this information if you need to embed a FlatBuffer in some other buffer, such that you can later read it without first having to copy it into its own buffer.

## ◆ GetBufferPointer()

uint8_t * flatbuffers::FlatBufferBuilder::GetBufferPointer | ( |  | ) | const
| inline

Get the serialized buffer (after you call `Finish()`).

Returns
  Returns an `uint8_t` pointer to the FlatBuffer data inside the buffer.

## ◆ GetCurrentBufferPointer()

uint8_t * flatbuffers::FlatBufferBuilder::GetCurrentBufferPointer | ( |  | ) | const
| inline

Get a pointer to an unfinished buffer.

Returns
  Returns a `uint8_t` pointer to the unfinished buffer.

## ◆ GetSize()

uoffset_t flatbuffers::FlatBufferBuilder::GetSize | ( |  | ) | const
| inline

The current size of the serialized buffer, counting from the end.

Returns
  Returns an `uoffset_t` with the current size of the buffer.

## ◆ Release()

DetachedBuffer flatbuffers::FlatBufferBuilder::Release | ( |  | ) |
| inline

Get the released DetachedBuffer.

Returns
  A `DetachedBuffer` that owns the buffer and its allocator.

## ◆ ReleaseRaw()

uint8_t * flatbuffers::FlatBufferBuilder::ReleaseRaw | ( | size_t & | size,
|  | size_t & | offset
| ) |  |
| inline

Get the released pointer to the serialized buffer.

Parameters

  size | The size of the memory block containing the serialized `FlatBuffer`.
  offset | The offset from the released pointer where the finished `FlatBuffer` starts.

Returns
  A raw pointer to the start of the memory block containing the serialized `FlatBuffer`.

Remarks
  If the allocator is owned, it gets deleted when the destructor is called..

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

- flatbuffers.h