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

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. More...

#include <flatbuffers.h>

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. More...
 
Offset< StringCreateSharedString (const char *str, size_t len)
 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. More...
 
Offset< StringCreateSharedString (const char *str)
 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. More...
 
Offset< StringCreateSharedString (const std::string &str)
 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. More...
 
Offset< StringCreateSharedString (const String *str)
 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. More...
 
Offset< StringCreateString (const char *str, size_t len)
 Store a string in the buffer, which can contain any binary data. More...
 
Offset< StringCreateString (const char *str)
 Store a string in the buffer, which is null-terminated. More...
 
Offset< StringCreateString (char *str)
 Store a string in the buffer, which is null-terminated. More...
 
Offset< StringCreateString (const std::string &str)
 Store a string in the buffer, which can contain any binary data. More...
 
Offset< StringCreateString (const String *str)
 Store a string in the buffer, which can contain any binary data. More...
 
template<typename T >
Offset< StringCreateString (const T &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. More...
 
uoffset_t CreateUninitializedVector (size_t len, size_t elemsize, uint8_t **buf)
 Specialized version of CreateVector for non-copying use cases. Write the data any time later to the returned buffer pointer buf. More...
 
template<typename T >
Offset< Vector< T > > CreateUninitializedVector (size_t len, T **buf)
 Specialized version of CreateVector for non-copying use cases. Write the data any time later to the returned buffer pointer buf. More...
 
template<typename T >
Offset< Vector< const T * > > CreateUninitializedVectorOfStructs (size_t len, T **buf)
 
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< Offset< T > > > CreateVector (const Offset< T > *v, size_t len)
 
template<typename T >
Offset< Vector< T > > CreateVector (const std::vector< T > &v)
 Serialize a std::vector into a FlatBuffer vector. More...
 
Offset< Vector< uint8_t > > CreateVector (const std::vector< bool > &v)
 
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. This is a convenience function that takes care of iteration for you. 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. This is a convenience function that takes care of iteration for you. More...
 
template<typename T , typename S >
Offset< Vector< const T * > > CreateVectorOfNativeStructs (const S *v, size_t len, T((*const pack_func)(const S &)))
 Serialize an array of native structs 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, T((*const pack_func)(const S &)))
 Serialize a std::vector 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 (std::vector< S > *v)
 Serialize a std::vector of native structs into a FlatBuffer vector in sorted order. 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 >
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. This is a convenience function for a common case. 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 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 , 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). 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. More...
 
 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...
 
 FlatBufferBuilder (FlatBufferBuilder &&other)
 Move 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 () const
 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. More...
 
uint8_t * GetBufferPointer () const
 Get the serialized buffer (after you call Finish()). More...
 
flatbuffers::span< uint8_t > GetBufferSpan () const
 Get the serialized buffer (after you call Finish()) as a span. 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...
 
FlatBufferBuilderoperator= (FlatBufferBuilder &&other)
 Move assignment operator for FlatBufferBuilder. More...
 
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)
 
 ~FlatBufferBuilder ()
 

Static Public Attributes

static const size_t kFileIdentifierLength = 4
 The length of a FlatBuffer file header. More...
 

Protected Types

typedef std::set< Offset< String >, StringOffsetCompareStringOffsetMap
 

Protected Member Functions

void Finish (uoffset_t root, const char *file_identifier, bool size_prefix)
 
 FlatBufferBuilder (const FlatBufferBuilder &)
 
FlatBufferBuilderoperator= (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
 
StringOffsetMapstring_pool
 

Private Member Functions

template<typename T >
Offset< Vector< const T * > > EndVectorOfStructs (size_t vector_size)
 
template<typename T >
T * StartVectorOfStructs (size_t vector_size)
 

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.

Definition at line 1132 of file flatbuffers.h.

Member Typedef Documentation

Definition at line 2184 of file flatbuffers.h.

Constructor & Destructor Documentation

flatbuffers::FlatBufferBuilder::FlatBufferBuilder ( size_t  initial_size = 1024,
Allocator allocator = nullptr,
bool  own_allocator = false,
size_t  buffer_minalign = AlignOf<largest_scalar_t>() 
)
inlineexplicit

Default constructor for FlatBufferBuilder.

Parameters
[in]initial_sizeThe initial size of the buffer, in bytes. Defaults to 1024.
[in]allocatorAn Allocator to use. If null will use DefaultAllocator.
[in]own_allocatorWhether the builder/vector should own the allocator. Defaults to / false.
[in]buffer_minalignForce 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.

Definition at line 1145 of file flatbuffers.h.

flatbuffers::FlatBufferBuilder::FlatBufferBuilder ( FlatBufferBuilder &&  other)
inline

Move constructor for FlatBufferBuilder.

Definition at line 1164 of file flatbuffers.h.

flatbuffers::FlatBufferBuilder::~FlatBufferBuilder ( )
inline

Definition at line 1211 of file flatbuffers.h.

flatbuffers::FlatBufferBuilder::FlatBufferBuilder ( const FlatBufferBuilder )
protected

Member Function Documentation

void flatbuffers::FlatBufferBuilder::Clear ( )
inline

Reset all the state in this FlatBufferBuilder so it can be reused to construct another buffer.

Definition at line 1222 of file flatbuffers.h.

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]strA const char pointer to the data to be stored as a string.
[in]lenThe number of bytes that should be stored from str.
Returns
Returns the offset in the buffer where the string starts.

Definition at line 1596 of file flatbuffers.h.

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]strA const char pointer to a C-string to add to the buffer.
Returns
Returns the offset in the buffer where the string starts.

Definition at line 1630 of file flatbuffers.h.

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]strA const reference to a std::string to store in the buffer.
Returns
Returns the offset in the buffer where the string starts.

Definition at line 1639 of file flatbuffers.h.

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]strA const pointer to a String struct to add to the buffer.
Returns
Returns the offset in the buffer where the string starts

Definition at line 1649 of file flatbuffers.h.

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]strA const char pointer to the data to be stored as a string.
[in]lenThe number of bytes that should be stored from str.
Returns
Returns the offset in the buffer where the string starts.

Definition at line 1534 of file flatbuffers.h.

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

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

Parameters
[in]strA const char pointer to a C-string to add to the buffer.
Returns
Returns the offset in the buffer where the string starts.

Definition at line 1546 of file flatbuffers.h.

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

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

Parameters
[in]strA char pointer to a C-string to add to the buffer.
Returns
Returns the offset in the buffer where the string starts.

Definition at line 1553 of file flatbuffers.h.

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

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

Parameters
[in]strA const reference to a std::string to store in the buffer.
Returns
Returns the offset in the buffer where the string starts.

Definition at line 1560 of file flatbuffers.h.

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

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

Parameters
[in]strA const pointer to a String struct to add to the buffer.
Returns
Returns the offset in the buffer where the string starts

Definition at line 1578 of file flatbuffers.h.

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]strA 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.

Definition at line 1586 of file flatbuffers.h.

template<typename T >
Offset<const T *> flatbuffers::FlatBufferBuilder::CreateStruct ( const T &  structobj)
inline

Write a struct by itself, typically to be part of a union.

Definition at line 2089 of file flatbuffers.h.

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]lenThe number of elements to store in the vector.
[in]elemsizeThe size of each element in the vector.
[out]bufA 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.

Definition at line 2043 of file flatbuffers.h.

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
TThe data type of the data that will be stored in the buffer as a vector.
Parameters
[in]lenThe number of elements to store in the vector.
[out]bufA 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.

Definition at line 2063 of file flatbuffers.h.

template<typename T >
Offset<Vector<const T *> > flatbuffers::FlatBufferBuilder::CreateUninitializedVectorOfStructs ( size_t  len,
T **  buf 
)
inline

Definition at line 2070 of file flatbuffers.h.

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
TThe data type of the array elements.
Parameters
[in]vA pointer to the array of type T to serialize into the buffer as a vector.
[in]lenThe number of elements to serialize.
Returns
Returns a typed Offset into the serialized data indicating where the vector is stored.

Definition at line 1692 of file flatbuffers.h.

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

Definition at line 1715 of file flatbuffers.h.

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
TThe data type of the std::vector elements.
Parameters
vA 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.

Definition at line 1727 of file flatbuffers.h.

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

Definition at line 1734 of file flatbuffers.h.

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
TThe data type of the std::vector elements.
Parameters
fA 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.

Definition at line 1751 of file flatbuffers.h.

template<typename T , typename F , typename S >
Offset<Vector<T> > flatbuffers::FlatBufferBuilder::CreateVector ( size_t  vector_size,
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
TThe data type of the std::vector elements.
Parameters
fA 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.
stateState passed to f.
Returns
Returns a typed Offset into the serialized data indicating where the vector is stored.

Definition at line 1770 of file flatbuffers.h.

template<typename T , typename S >
Offset<Vector<const T *> > flatbuffers::FlatBufferBuilder::CreateVectorOfNativeStructs ( const S *  v,
size_t  len,
T((*const pack_func)(const S &))   
)
inline

Serialize an array of native structs into a FlatBuffer vector.

Template Parameters
TThe data type of the struct array elements.
SThe data type of the native struct array elements.
Parameters
[in]vA pointer to the array of type S to serialize into the buffer as a vector.
[in]lenThe number of elements to serialize.
[in]pack_funcPointer to a function to convert the native struct to the FlatBuffer struct.
Returns
Returns a typed Offset into the serialized data indicating where the vector is stored.

Definition at line 1814 of file flatbuffers.h.

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
TThe data type of the struct array elements.
SThe data type of the native struct array elements.
Parameters
[in]vA pointer to the array of type S to serialize into the buffer as a vector.
[in]lenThe number of elements to serialize.
Returns
Returns a typed Offset into the serialized data indicating where the vector is stored.

Definition at line 1831 of file flatbuffers.h.

template<typename T , typename S >
Offset<Vector<const T *> > flatbuffers::FlatBufferBuilder::CreateVectorOfNativeStructs ( const std::vector< S > &  v,
T((*const pack_func)(const S &))   
)
inline

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

Template Parameters
TThe data type of the std::vector struct elements.
SThe data type of the std::vector native struct elements.
Parameters
[in]vA const reference to the std::vector of structs to serialize into the buffer as a vector.
[in]pack_funcPointer to a function to convert the native struct to the FlatBuffer struct.
Returns
Returns a typed Offset into the serialized data indicating where the vector is stored.

Definition at line 1902 of file flatbuffers.h.

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
TThe data type of the std::vector struct elements.
SThe data type of the std::vector native struct elements.
Parameters
[in]vA 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.

Definition at line 1916 of file flatbuffers.h.

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
TThe data type of the std::vector struct elements.
SThe data type of the std::vector native struct elements.
Parameters
[in]vA 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.

Definition at line 1953 of file flatbuffers.h.

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
TThe data type of the struct array elements.
SThe data type of the native struct array elements.
Parameters
[in]vA pointer to the array of type S to serialize into the buffer as a vector.
[in]lenThe number of elements to serialize.
Returns
Returns a typed Offset into the serialized data indicating where the vector is stored.

Definition at line 1982 of file flatbuffers.h.

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
TThe data type of the std::vector struct elements.
Parameters
[in]vA 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.

Definition at line 1940 of file flatbuffers.h.

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
TThe data type of the struct array elements.
Parameters
[in]vA pointer to the array of type T to serialize into the buffer as a vector.
[in]lenThe number of elements to serialize.
Returns
Returns a typed Offset into the serialized data indicating where the vector is stored.

Definition at line 1967 of file flatbuffers.h.

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
TThe data type that the offset refers to.
Parameters
[in]vAn array of type Offset<T> that contains the table offsets to store in the buffer in sorted order.
[in]lenThe number of elements to store in the vector.
Returns
Returns a typed Offset into the serialized data indicating where the vector is stored.

Definition at line 2017 of file flatbuffers.h.

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
TThe data type that the offset refers to.
Parameters
[in]vAn 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.

Definition at line 2031 of file flatbuffers.h.

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
vA 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.

Definition at line 1782 of file flatbuffers.h.

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
TThe data type of the struct array elements.
Parameters
[in]vA pointer to the array of type T to serialize into the buffer as a vector.
[in]lenThe number of elements to serialize.
Returns
Returns a typed Offset into the serialized data indicating where the vector is stored.

Definition at line 1797 of file flatbuffers.h.

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
TThe data type of the struct array elements.
Parameters
[in]fillerA 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.

Definition at line 1847 of file flatbuffers.h.

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

Serialize an array of structs into a FlatBuffer vector.

Template Parameters
TThe data type of the struct array elements.
Parameters
[in]fA function that takes the current iteration 0..vector_size-1, a pointer to the struct that must be filled and the state argument.
[in]stateArbitrary 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.

Definition at line 1869 of file flatbuffers.h.

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
TThe data type of the std::vector struct elements.
Parameters
[in]vA 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.

Definition at line 1886 of file flatbuffers.h.

template<typename T , typename U >
Offset<Vector<T> > flatbuffers::FlatBufferBuilder::CreateVectorScalarCast ( const U *  v,
size_t  len 
)
inline

Definition at line 2080 of file flatbuffers.h.

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

By default vtables are deduped in order to save space.

Parameters
[in]dedupWhen set to true, dedup vtables.

Definition at line 1316 of file flatbuffers.h.

template<typename T >
Offset<Vector<const T *> > flatbuffers::FlatBufferBuilder::EndVectorOfStructs ( size_t  vector_size)
inlineprivate

Definition at line 2198 of file flatbuffers.h.

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_identifierIf a file_identifier is given, the buffer will be prefixed with a standard FlatBuffers file header.

Definition at line 2103 of file flatbuffers.h.

void flatbuffers::FlatBufferBuilder::Finish ( uoffset_t  root,
const char *  file_identifier,
bool  size_prefix 
)
inlineprotected

Definition at line 2129 of file flatbuffers.h.

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.

Definition at line 2115 of file flatbuffers.h.

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.

Definition at line 1259 of file flatbuffers.h.

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]fdWhen set to true, always serializes default values that are set. Optional fields which are not set explicitly, will still not be serialized.

Definition at line 1312 of file flatbuffers.h.

size_t flatbuffers::FlatBufferBuilder::GetBufferMinAlignment ( ) const
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.

Definition at line 1291 of file flatbuffers.h.

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.

Definition at line 1238 of file flatbuffers.h.

flatbuffers::span<uint8_t> flatbuffers::FlatBufferBuilder::GetBufferSpan ( ) const
inline

Get the serialized buffer (after you call Finish()) as a span.

Returns
Returns a constructed flatbuffers::span that is a view over the FlatBuffer data inside the buffer.

Definition at line 1246 of file flatbuffers.h.

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

Get a pointer to an unfinished buffer.

Returns
Returns a uint8_t pointer to the unfinished buffer.

Definition at line 1253 of file flatbuffers.h.

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.

Definition at line 1233 of file flatbuffers.h.

FlatBufferBuilder& flatbuffers::FlatBufferBuilder::operator= ( FlatBufferBuilder &&  other)
inline

Move assignment operator for FlatBufferBuilder.

Definition at line 1188 of file flatbuffers.h.

FlatBufferBuilder& flatbuffers::FlatBufferBuilder::operator= ( const FlatBufferBuilder )
protected
DetachedBuffer flatbuffers::FlatBufferBuilder::Release ( )
inline

Get the released DetachedBuffer.

Returns
A DetachedBuffer that owns the buffer and its allocator.

Definition at line 1267 of file flatbuffers.h.

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

Get the released pointer to the serialized buffer.

Parameters
sizeThe size of the memory block containing the serialized FlatBuffer.
offsetThe 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..

Definition at line 1281 of file flatbuffers.h.

void flatbuffers::FlatBufferBuilder::Reset ( )
inline

Definition at line 1215 of file flatbuffers.h.

template<typename T >
T* flatbuffers::FlatBufferBuilder::StartVectorOfStructs ( size_t  vector_size)
inlineprivate

Definition at line 2190 of file flatbuffers.h.

void flatbuffers::FlatBufferBuilder::Swap ( FlatBufferBuilder other)
inline

Definition at line 1198 of file flatbuffers.h.

void flatbuffers::FlatBufferBuilder::SwapBufAllocator ( FlatBufferBuilder other)
inline

Definition at line 2120 of file flatbuffers.h.

Member Data Documentation

vector_downward flatbuffers::FlatBufferBuilder::buf_
protected

Definition at line 2151 of file flatbuffers.h.

bool flatbuffers::FlatBufferBuilder::dedup_vtables_
protected

Definition at line 2170 of file flatbuffers.h.

bool flatbuffers::FlatBufferBuilder::finished
protected

Definition at line 2164 of file flatbuffers.h.

bool flatbuffers::FlatBufferBuilder::force_defaults_
protected

Definition at line 2168 of file flatbuffers.h.

const size_t flatbuffers::FlatBufferBuilder::kFileIdentifierLength = 4
static

The length of a FlatBuffer file header.

Definition at line 2097 of file flatbuffers.h.

voffset_t flatbuffers::FlatBufferBuilder::max_voffset_
protected

Definition at line 2158 of file flatbuffers.h.

size_t flatbuffers::FlatBufferBuilder::minalign_
protected

Definition at line 2166 of file flatbuffers.h.

bool flatbuffers::FlatBufferBuilder::nested
protected

Definition at line 2161 of file flatbuffers.h.

uoffset_t flatbuffers::FlatBufferBuilder::num_field_loc
protected

Definition at line 2155 of file flatbuffers.h.

StringOffsetMap* flatbuffers::FlatBufferBuilder::string_pool
protected

Definition at line 2185 of file flatbuffers.h.


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


behaviotree_cpp_v3
Author(s): Michele Colledanchise, Davide Faconti
autogenerated on Tue May 4 2021 02:56:26