FlatBuffers
An open source project by FPL.
|
Class that helps you build a FlatBuffer. More...
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... | |
|
inline |
Start with a buffer of size initial_size
, then grow as required.
initial_size | The initial size of the internal buffer to use. |
bb_factory | The factory to be used for allocating the internal buffer |
|
inline |
Start with a buffer of size initial_size
, then grow as required.
initial_size | The initial size of the internal buffer to use. |
bb_factory | The factory to be used for allocating the internal buffer |
existing_bb | The byte buffer to reuse. |
utf8 | The Utf8 codec |
|
inline |
Start with a buffer of size initial_size
, then grow as required.
initial_size | The initial size of the internal buffer to use. |
|
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.
existing_bb | The byte buffer to reuse. |
bb_factory | The factory to be used for allocating a new internal buffer if the existing buffer needs to grow |
|
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.
existing_bb | The byte buffer to reuse. |
|
inline |
Add a boolean
to the buffer, properly aligned, and grows the buffer (if necessary).
x | A boolean to put into the buffer. |
|
inline |
Add a byte
to the buffer, properly aligned, and grows the buffer (if necessary).
x | A byte to put into the buffer. |
|
inline |
Add a double
to the buffer, properly aligned, and grows the buffer (if necessary).
x | A double to put into the buffer. |
|
inline |
Add a float
to the buffer, properly aligned, and grows the buffer (if necessary).
x | A float to put into the buffer. |
|
inline |
Add an int
to the buffer, properly aligned, and grows the buffer (if necessary).
x | An int to put into the buffer. |
|
inline |
Add a long
to the buffer, properly aligned, and grows the buffer (if necessary).
x | A long to put into the buffer. |
|
inline |
Adds on offset, relative to where it will be written.
off | The offset to add. |
|
inline |
Add a short
to the buffer, properly aligned, and grows the buffer (if necessary).
x | A short to put into the buffer. |
|
inline |
Create a byte array in the buffer.
arr | A source array with data |
|
inline |
Create a byte array in the buffer.
arr | a source array with data. |
offset | the offset in the source array to start copying from. |
length | the number of bytes to copy from the source array. |
|
inline |
Create a byte array in the buffer.
The source ByteBuffer position is advanced by ByteBuffer#remaining() places after this call.
byteBuffer | A source ByteBuffer with data. |
|
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.
s | The String to encode. |
|
inline |
Create a string in the buffer from an already encoded UTF-8 string in a ByteBuffer.
s | An already encoded UTF-8 string as a ByteBuffer . |
|
inline |
Encode the string s
in the buffer using UTF-8.
If
is already a CharBuffer, this method is allocation free.
s | The string to encode. |
|
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.
elem_size | the size of each element in bytes. |
num_elems | number of elements in the vector. |
alignment | byte alignment. |
|
inline |
Create a vector of tables.
offsets | Offsets of the tables. |
|
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
.
|
inline |
Finalize a buffer, pointing to the given root_table
.
root_table | An offset to be added to the buffer. |
|
inlineprotected |
Finalize a buffer, pointing to the given root_table
.
root_table | An offset to be added to the buffer. |
size_prefix | Whether to prefix the size to the buffer. |
|
inline |
Finalize a buffer, pointing to the given root_table
.
root_table | An offset to be added to the buffer. |
file_identifier | A FlatBuffer file identifier to be added to the buffer before root_table . |
|
inlineprotected |
Finalize a buffer, pointing to the given root_table
.
root_table | An offset to be added to the buffer. |
file_identifier | A FlatBuffer file identifier to be added to the buffer before root_table . |
size_prefix | Whether to prefix the size to the buffer. |
|
inline |
Finalize a buffer, pointing to the given root_table
, with the size prefixed.
root_table | An offset to be added to the buffer. |
|
inline |
Finalize a buffer, pointing to the given root_table
, with the size prefixed.
root_table | An offset to be added to the buffer. |
file_identifier | A FlatBuffer file identifier to be added to the buffer before root_table . |
|
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.
forceDefaults | When set to true , always serializes default values. |
this
.
|
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.
existing_bb | The byte buffer to reuse. |
bb_factory | The factory to be used for allocating a new internal buffer if the existing buffer needs to grow |
this
.
|
inlinestatic |
Helper function to test if a field is present in the table.
table | Flatbuffer table |
offset | virtual table offset |
|
inline |
Offset relative to the end of the buffer.
|
inline |
Add zero valued bytes to prepare a new entry to be added.
byte_size | Number of bytes to add. |
|
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.
size | This is the of the new element to write. |
additional_bytes | The padding size. |
|
inline |
Add a boolean
to the buffer, backwards from the current location.
Doesn't align nor check for space.
x | A boolean to put into the buffer. |
|
inline |
Add a byte
to the buffer, backwards from the current location.
Doesn't align nor check for space.
x | A byte to put into the buffer. |
|
inline |
Add a double
to the buffer, backwards from the current location.
Doesn't align nor check for space.
x | A double to put into the buffer. |
|
inline |
Add a float
to the buffer, backwards from the current location.
Doesn't align nor check for space.
x | A float to put into the buffer. |
|
inline |
Add an int
to the buffer, backwards from the current location.
Doesn't align nor check for space.
x | An int to put into the buffer. |
|
inline |
Add a long
to the buffer, backwards from the current location.
Doesn't align nor check for space.
x | A long to put into the buffer. |
|
inline |
Add a short
to the buffer, backwards from the current location.
Doesn't align nor check for space.
x | A short to put into the buffer. |
|
inline |
A utility function to copy and return the ByteBuffer data as a byte[]
.
|
inline |
A utility function to copy and return the ByteBuffer data from start
to start
+ length
as a byte[]
.
start | Start copying at this offset. |
length | How many bytes to copy. |
IndexOutOfBoundsException | If the range of bytes is ouf of bound. |
|
inline |
A utility function to return an InputStream to the ByteBuffer data.