FlatBuffers
An open source project by FPL.
com.google.flatbuffers.FlatBufferBuilder Class Reference

Class that helps you build a FlatBuffer. More...

Detailed Description

Class that helps you build a FlatBuffer.

See the section "Use in Java/C#" in the main FlatBuffers documentation.

Classes

class  ByteBufferBackedInputStream
 A class that allows a user to create an InputStream from a ByteBuffer.
 
class  ByteBufferFactory
 An interface that provides a user of the FlatBufferBuilder class the ability to specify the method in which the internal buffer gets allocated. More...
 
class  HeapByteBufferFactory
 An implementation of the ByteBufferFactory interface that is used when one is not provided by the user. More...
 

Public Member Functions

void addBoolean (boolean x)
 Add a boolean to the buffer, properly aligned, and grows the buffer (if necessary). More...
 
void addByte (byte x)
 Add a byte to the buffer, properly aligned, and grows the buffer (if necessary). More...
 
void addDouble (double x)
 Add a double to the buffer, properly aligned, and grows the buffer (if necessary). More...
 
void addFloat (float x)
 Add a float to the buffer, properly aligned, and grows the buffer (if necessary). More...
 
void addInt (int x)
 Add an int to the buffer, properly aligned, and grows the buffer (if necessary). More...
 
void addLong (long x)
 Add a long to the buffer, properly aligned, and grows the buffer (if necessary). More...
 
void addOffset (int off)
 Adds on offset, relative to where it will be written. More...
 
void addShort (short x)
 Add a short to the buffer, properly aligned, and grows the buffer (if necessary). More...
 
void clear ()
 Reset the FlatBufferBuilder by purging all data that it holds.
 
int createByteVector (byte[] arr)
 Create a byte array in the buffer. More...
 
int createByteVector (byte[] arr, int offset, int length)
 Create a byte array in the buffer. More...
 
int createByteVector (ByteBuffer byteBuffer)
 Create a byte array in the buffer. More...
 
int createSharedString (String s)
 Encode the String s in the buffer using UTF-8. More...
 
int createString (ByteBuffer s)
 Create a string in the buffer from an already encoded UTF-8 string in a ByteBuffer. More...
 
int createString (CharSequence s)
 Encode the string s in the buffer using UTF-8. More...
 
ByteBuffer createUnintializedVector (int elem_size, int num_elems, int alignment)
 Create a new array/vector and return a ByteBuffer to be filled later. More...
 
int createVectorOfTables (int[] offsets)
 Create a vector of tables. More...
 
ByteBuffer dataBuffer ()
 Get the ByteBuffer representing the FlatBuffer. More...
 
void finish (int root_table)
 Finalize a buffer, pointing to the given root_table. More...
 
void finish (int root_table, String file_identifier)
 Finalize a buffer, pointing to the given root_table. More...
 
void finishSizePrefixed (int root_table)
 Finalize a buffer, pointing to the given root_table, with the size prefixed. More...
 
void finishSizePrefixed (int root_table, String file_identifier)
 Finalize a buffer, pointing to the given root_table, with the size prefixed. More...
 
 FlatBufferBuilder ()
 Start with a buffer of 1KiB, then grow as required.
 
 FlatBufferBuilder (ByteBuffer existing_bb)
 Alternative constructor allowing reuse of ByteBuffers. More...
 
 FlatBufferBuilder (ByteBuffer existing_bb, ByteBufferFactory bb_factory)
 Alternative constructor allowing reuse of ByteBuffers. More...
 
 FlatBufferBuilder (int initial_size)
 Start with a buffer of size initial_size, then grow as required. More...
 
 FlatBufferBuilder (int initial_size, ByteBufferFactory bb_factory)
 Start with a buffer of size initial_size, then grow as required. More...
 
 FlatBufferBuilder (int initial_size, ByteBufferFactory bb_factory, ByteBuffer existing_bb, Utf8 utf8)
 Start with a buffer of size initial_size, then grow as required. More...
 
FlatBufferBuilder forceDefaults (boolean forceDefaults)
 In order to save space, fields that are set to their default value don't get serialized into the buffer. More...
 
FlatBufferBuilder init (ByteBuffer existing_bb, ByteBufferFactory bb_factory)
 Alternative initializer that allows reusing this object on an existing ByteBuffer. More...
 
int offset ()
 Offset relative to the end of the buffer. More...
 
void pad (int byte_size)
 Add zero valued bytes to prepare a new entry to be added. More...
 
void prep (int size, int additional_bytes)
 Prepare to write an element of size after additional_bytes have been written, e.g. More...
 
void putBoolean (boolean x)
 Add a boolean to the buffer, backwards from the current location. More...
 
void putByte (byte x)
 Add a byte to the buffer, backwards from the current location. More...
 
void putDouble (double x)
 Add a double to the buffer, backwards from the current location. More...
 
void putFloat (float x)
 Add a float to the buffer, backwards from the current location. More...
 
void putInt (int x)
 Add an int to the buffer, backwards from the current location. More...
 
void putLong (long x)
 Add a long to the buffer, backwards from the current location. More...
 
void putShort (short x)
 Add a short to the buffer, backwards from the current location. More...
 
byte[] sizedByteArray ()
 A utility function to copy and return the ByteBuffer data as a byte[]. More...
 
byte[] sizedByteArray (int start, int length)
 A utility function to copy and return the ByteBuffer data from start to start + length as a byte[]. More...
 
InputStream sizedInputStream ()
 A utility function to return an InputStream to the ByteBuffer data. More...
 

Static Public Member Functions

static boolean isFieldPresent (Table table, int offset)
 Helper function to test if a field is present in the table. More...
 

Protected Member Functions

void finish (int root_table, boolean size_prefix)
 Finalize a buffer, pointing to the given root_table. More...
 
void finish (int root_table, String file_identifier, boolean size_prefix)
 Finalize a buffer, pointing to the given root_table. More...
 

Constructor & Destructor Documentation

◆ FlatBufferBuilder() [1/5]

com.google.flatbuffers.FlatBufferBuilder.FlatBufferBuilder ( int  initial_size,
ByteBufferFactory  bb_factory 
)
inline

Start with a buffer of size initial_size, then grow as required.

Parameters
initial_sizeThe initial size of the internal buffer to use.
bb_factoryThe factory to be used for allocating the internal buffer

◆ FlatBufferBuilder() [2/5]

com.google.flatbuffers.FlatBufferBuilder.FlatBufferBuilder ( int  initial_size,
ByteBufferFactory  bb_factory,
ByteBuffer  existing_bb,
Utf8  utf8 
)
inline

Start with a buffer of size initial_size, then grow as required.

Parameters
initial_sizeThe initial size of the internal buffer to use.
bb_factoryThe factory to be used for allocating the internal buffer
existing_bbThe byte buffer to reuse.
utf8The Utf8 codec

◆ FlatBufferBuilder() [3/5]

com.google.flatbuffers.FlatBufferBuilder.FlatBufferBuilder ( int  initial_size)
inline

Start with a buffer of size initial_size, then grow as required.

Parameters
initial_sizeThe initial size of the internal buffer to use.

◆ FlatBufferBuilder() [4/5]

com.google.flatbuffers.FlatBufferBuilder.FlatBufferBuilder ( ByteBuffer  existing_bb,
ByteBufferFactory  bb_factory 
)
inline

Alternative constructor allowing reuse of ByteBuffers.

The builder can still grow the buffer as necessary. User classes should make sure to call dataBuffer() to obtain the resulting encoded message.

Parameters
existing_bbThe byte buffer to reuse.
bb_factoryThe factory to be used for allocating a new internal buffer if the existing buffer needs to grow

◆ FlatBufferBuilder() [5/5]

com.google.flatbuffers.FlatBufferBuilder.FlatBufferBuilder ( ByteBuffer  existing_bb)
inline

Alternative constructor allowing reuse of ByteBuffers.

The builder can still grow the buffer as necessary. User classes should make sure to call dataBuffer() to obtain the resulting encoded message.

Parameters
existing_bbThe byte buffer to reuse.

Member Function Documentation

◆ addBoolean()

void com.google.flatbuffers.FlatBufferBuilder.addBoolean ( boolean  x)
inline

Add a boolean to the buffer, properly aligned, and grows the buffer (if necessary).

Parameters
xA boolean to put into the buffer.

◆ addByte()

void com.google.flatbuffers.FlatBufferBuilder.addByte ( byte  x)
inline

Add a byte to the buffer, properly aligned, and grows the buffer (if necessary).

Parameters
xA byte to put into the buffer.

◆ addDouble()

void com.google.flatbuffers.FlatBufferBuilder.addDouble ( double  x)
inline

Add a double to the buffer, properly aligned, and grows the buffer (if necessary).

Parameters
xA double to put into the buffer.

◆ addFloat()

void com.google.flatbuffers.FlatBufferBuilder.addFloat ( float  x)
inline

Add a float to the buffer, properly aligned, and grows the buffer (if necessary).

Parameters
xA float to put into the buffer.

◆ addInt()

void com.google.flatbuffers.FlatBufferBuilder.addInt ( int  x)
inline

Add an int to the buffer, properly aligned, and grows the buffer (if necessary).

Parameters
xAn int to put into the buffer.

◆ addLong()

void com.google.flatbuffers.FlatBufferBuilder.addLong ( long  x)
inline

Add a long to the buffer, properly aligned, and grows the buffer (if necessary).

Parameters
xA long to put into the buffer.

◆ addOffset()

void com.google.flatbuffers.FlatBufferBuilder.addOffset ( int  off)
inline

Adds on offset, relative to where it will be written.

Parameters
offThe offset to add.

◆ addShort()

void com.google.flatbuffers.FlatBufferBuilder.addShort ( short  x)
inline

Add a short to the buffer, properly aligned, and grows the buffer (if necessary).

Parameters
xA short to put into the buffer.

◆ createByteVector() [1/3]

int com.google.flatbuffers.FlatBufferBuilder.createByteVector ( byte[]  arr)
inline

Create a byte array in the buffer.

Parameters
arrA source array with data
Returns
The offset in the buffer where the encoded array starts.

◆ createByteVector() [2/3]

int com.google.flatbuffers.FlatBufferBuilder.createByteVector ( byte[]  arr,
int  offset,
int  length 
)
inline

Create a byte array in the buffer.

Parameters
arra source array with data.
offsetthe offset in the source array to start copying from.
lengththe number of bytes to copy from the source array.
Returns
The offset in the buffer where the encoded array starts.

◆ createByteVector() [3/3]

int com.google.flatbuffers.FlatBufferBuilder.createByteVector ( ByteBuffer  byteBuffer)
inline

Create a byte array in the buffer.

The source ByteBuffer position is advanced by ByteBuffer#remaining() places after this call.

Parameters
byteBufferA source ByteBuffer with data.
Returns
The offset in the buffer where the encoded array starts.

◆ createSharedString()

int com.google.flatbuffers.FlatBufferBuilder.createSharedString ( String  s)
inline

Encode the String s in the buffer using UTF-8.

If a String with this exact contents has already been serialized using this method, instead simply returns the offset of the existing String.

Usage of the method will incur into additional allocations, so it is advisable to use it only when it is known upfront that your message will have several repeated strings.

Parameters
sThe String to encode.
Returns
The offset in the buffer where the encoded String starts.

◆ createString() [1/2]

int com.google.flatbuffers.FlatBufferBuilder.createString ( ByteBuffer  s)
inline

Create a string in the buffer from an already encoded UTF-8 string in a ByteBuffer.

Parameters
sAn already encoded UTF-8 string as a ByteBuffer.
Returns
The offset in the buffer where the encoded string starts.

◆ createString() [2/2]

int com.google.flatbuffers.FlatBufferBuilder.createString ( CharSequence  s)
inline

Encode the string s in the buffer using UTF-8.

If

s

is already a CharBuffer, this method is allocation free.

Parameters
sThe string to encode.
Returns
The offset in the buffer where the encoded string starts.

◆ createUnintializedVector()

ByteBuffer com.google.flatbuffers.FlatBufferBuilder.createUnintializedVector ( int  elem_size,
int  num_elems,
int  alignment 
)
inline

Create a new array/vector and return a ByteBuffer to be filled later.

Call endVector after this method to get an offset to the beginning of vector.

Parameters
elem_sizethe size of each element in bytes.
num_elemsnumber of elements in the vector.
alignmentbyte alignment.
Returns
ByteBuffer with position and limit set to the space allocated for the array.

◆ createVectorOfTables()

int com.google.flatbuffers.FlatBufferBuilder.createVectorOfTables ( int[]  offsets)
inline

Create a vector of tables.

Parameters
offsetsOffsets of the tables.
Returns
Returns offset of the vector.

◆ dataBuffer()

ByteBuffer com.google.flatbuffers.FlatBufferBuilder.dataBuffer ( )
inline

Get the ByteBuffer representing the FlatBuffer.

Only call this after you've called finish(). The actual data starts at the ByteBuffer's current position, not necessarily at 0.

Returns
The ByteBuffer representing the FlatBuffer

◆ finish() [1/4]

void com.google.flatbuffers.FlatBufferBuilder.finish ( int  root_table)
inline

Finalize a buffer, pointing to the given root_table.

Parameters
root_tableAn offset to be added to the buffer.

◆ finish() [2/4]

void com.google.flatbuffers.FlatBufferBuilder.finish ( int  root_table,
boolean  size_prefix 
)
inlineprotected

Finalize a buffer, pointing to the given root_table.

Parameters
root_tableAn offset to be added to the buffer.
size_prefixWhether to prefix the size to the buffer.

◆ finish() [3/4]

void com.google.flatbuffers.FlatBufferBuilder.finish ( int  root_table,
String  file_identifier 
)
inline

Finalize a buffer, pointing to the given root_table.

Parameters
root_tableAn offset to be added to the buffer.
file_identifierA FlatBuffer file identifier to be added to the buffer before root_table.

◆ finish() [4/4]

void com.google.flatbuffers.FlatBufferBuilder.finish ( int  root_table,
String  file_identifier,
boolean  size_prefix 
)
inlineprotected

Finalize a buffer, pointing to the given root_table.

Parameters
root_tableAn offset to be added to the buffer.
file_identifierA FlatBuffer file identifier to be added to the buffer before root_table.
size_prefixWhether to prefix the size to the buffer.

◆ finishSizePrefixed() [1/2]

void com.google.flatbuffers.FlatBufferBuilder.finishSizePrefixed ( int  root_table)
inline

Finalize a buffer, pointing to the given root_table, with the size prefixed.

Parameters
root_tableAn offset to be added to the buffer.

◆ finishSizePrefixed() [2/2]

void com.google.flatbuffers.FlatBufferBuilder.finishSizePrefixed ( int  root_table,
String  file_identifier 
)
inline

Finalize a buffer, pointing to the given root_table, with the size prefixed.

Parameters
root_tableAn offset to be added to the buffer.
file_identifierA FlatBuffer file identifier to be added to the buffer before root_table.

◆ forceDefaults()

FlatBufferBuilder com.google.flatbuffers.FlatBufferBuilder.forceDefaults ( boolean  forceDefaults)
inline

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

Forcing defaults provides a way to manually disable this optimization.

Parameters
forceDefaultsWhen set to true, always serializes default values.
Returns
Returns this.

◆ init()

FlatBufferBuilder com.google.flatbuffers.FlatBufferBuilder.init ( ByteBuffer  existing_bb,
ByteBufferFactory  bb_factory 
)
inline

Alternative initializer that allows reusing this object on an existing ByteBuffer.

This method resets the builder's internal state, but keeps objects that have been allocated for temporary storage.

Parameters
existing_bbThe byte buffer to reuse.
bb_factoryThe factory to be used for allocating a new internal buffer if the existing buffer needs to grow
Returns
Returns this.

◆ isFieldPresent()

static boolean com.google.flatbuffers.FlatBufferBuilder.isFieldPresent ( Table  table,
int  offset 
)
inlinestatic

Helper function to test if a field is present in the table.

Parameters
tableFlatbuffer table
offsetvirtual table offset
Returns
true if the filed is present

◆ offset()

int com.google.flatbuffers.FlatBufferBuilder.offset ( )
inline

Offset relative to the end of the buffer.

Returns
Offset relative to the end of the buffer.

◆ pad()

void com.google.flatbuffers.FlatBufferBuilder.pad ( int  byte_size)
inline

Add zero valued bytes to prepare a new entry to be added.

Parameters
byte_sizeNumber of bytes to add.

◆ prep()

void com.google.flatbuffers.FlatBufferBuilder.prep ( int  size,
int  additional_bytes 
)
inline

Prepare to write an element of size after additional_bytes have been written, e.g.

if you write a string, you need to align such the int length field is aligned to com.google.flatbuffers.Constants#SIZEOF_INT, and the string data follows it directly. If all you need to do is alignment, additional_bytes will be 0.

Parameters
sizeThis is the of the new element to write.
additional_bytesThe padding size.

◆ putBoolean()

void com.google.flatbuffers.FlatBufferBuilder.putBoolean ( boolean  x)
inline

Add a boolean to the buffer, backwards from the current location.

Doesn't align nor check for space.

Parameters
xA boolean to put into the buffer.

◆ putByte()

void com.google.flatbuffers.FlatBufferBuilder.putByte ( byte  x)
inline

Add a byte to the buffer, backwards from the current location.

Doesn't align nor check for space.

Parameters
xA byte to put into the buffer.

◆ putDouble()

void com.google.flatbuffers.FlatBufferBuilder.putDouble ( double  x)
inline

Add a double to the buffer, backwards from the current location.

Doesn't align nor check for space.

Parameters
xA double to put into the buffer.

◆ putFloat()

void com.google.flatbuffers.FlatBufferBuilder.putFloat ( float  x)
inline

Add a float to the buffer, backwards from the current location.

Doesn't align nor check for space.

Parameters
xA float to put into the buffer.

◆ putInt()

void com.google.flatbuffers.FlatBufferBuilder.putInt ( int  x)
inline

Add an int to the buffer, backwards from the current location.

Doesn't align nor check for space.

Parameters
xAn int to put into the buffer.

◆ putLong()

void com.google.flatbuffers.FlatBufferBuilder.putLong ( long  x)
inline

Add a long to the buffer, backwards from the current location.

Doesn't align nor check for space.

Parameters
xA long to put into the buffer.

◆ putShort()

void com.google.flatbuffers.FlatBufferBuilder.putShort ( short  x)
inline

Add a short to the buffer, backwards from the current location.

Doesn't align nor check for space.

Parameters
xA short to put into the buffer.

◆ sizedByteArray() [1/2]

byte [] com.google.flatbuffers.FlatBufferBuilder.sizedByteArray ( )
inline

A utility function to copy and return the ByteBuffer data as a byte[].

Returns
A full copy of the data buffer.

◆ sizedByteArray() [2/2]

byte [] com.google.flatbuffers.FlatBufferBuilder.sizedByteArray ( int  start,
int  length 
)
inline

A utility function to copy and return the ByteBuffer data from start to start + length as a byte[].

Parameters
startStart copying at this offset.
lengthHow many bytes to copy.
Returns
A range copy of the data buffer.
Exceptions
IndexOutOfBoundsExceptionIf the range of bytes is ouf of bound.

◆ sizedInputStream()

InputStream com.google.flatbuffers.FlatBufferBuilder.sizedInputStream ( )
inline

A utility function to return an InputStream to the ByteBuffer data.

Returns
An InputStream that starts at the beginning of the ByteBuffer data and can read to the end of it.

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