| package com.google.flatbuffers; |
| |
| /** |
| * Interface to represent a read-write buffer. This interface will be used to access and write |
| * FlexBuffers message. |
| */ |
| interface ReadWriteBuf extends ReadBuf { |
| /** |
| * Put a boolean into the buffer at {@code writePosition()} . Booleans as stored as single |
| * byte. Write position will be incremented. |
| * @return boolean element |
| */ |
| void putBoolean(boolean value); |
| |
| /** |
| * Put an array of bytes into the buffer at {@code writePosition()}. Write position will be |
| * incremented. |
| * @param value the data to be copied |
| * @param start initial position on value to be copied |
| * @param length amount of bytes to be copied |
| */ |
| void put (byte[] value, int start, int length); |
| |
| /** |
| * Write a byte into the buffer at {@code writePosition()}. Write position will be |
| * incremented. |
| */ |
| void put(byte value); |
| |
| /** |
| * Write a 16-bit into in the buffer at {@code writePosition()}. Write position will be |
| * incremented. |
| */ |
| void putShort(short value); |
| |
| /** |
| * Write a 32-bit into in the buffer at {@code writePosition()}. Write position will be |
| * incremented. |
| */ |
| void putInt(int value); |
| |
| /** |
| * Write a 64-bit into in the buffer at {@code writePosition()}. Write position will be |
| * incremented. |
| */ |
| void putLong(long value); |
| |
| /** |
| * Write a 32-bit float into the buffer at {@code writePosition()}. Write position will be |
| * incremented. |
| */ |
| void putFloat(float value); |
| |
| /** |
| * Write a 64-bit float into the buffer at {@code writePosition()}. Write position will be |
| * incremented. |
| */ |
| void putDouble(double value); |
| |
| /** |
| * Write boolean into a given position on the buffer. Booleans as stored as single byte. |
| * @param index position of the element in buffer |
| */ |
| void setBoolean(int index, boolean value); |
| |
| /** |
| * Read a byte from data. |
| * @param index position of the element in the buffer |
| * @return a byte |
| */ |
| void set(int index, byte value); |
| |
| /** |
| * Write an array of bytes into the buffer. |
| * @param index initial position of the buffer to be written |
| * @param value the data to be copied |
| * @param start initial position on value to be copied |
| * @param length amount of bytes to be copied |
| */ |
| void set(int index, byte[] value, int start, int length); |
| |
| /** |
| * Read a short from data. |
| * @param index position of the element in ReadBuf |
| * @return a short |
| */ |
| void setShort(int index, short value); |
| |
| /** |
| * Read a 32-bit int from data. |
| * @param index position of the element in ReadBuf |
| * @return an int |
| */ |
| void setInt(int index, int value); |
| |
| /** |
| * Read a 64-bit long from data. |
| * @param index position of the element in ReadBuf |
| * @return a long |
| */ |
| void setLong(int index, long value); |
| |
| /** |
| * Read a 32-bit float from data. |
| * @param index position of the element in ReadBuf |
| * @return a float |
| */ |
| void setFloat(int index, float value); |
| |
| /** |
| * Read a 64-bit float from data. |
| * @param index position of the element in ReadBuf |
| * @return a double |
| */ |
| void setDouble(int index, double value); |
| |
| |
| int writePosition(); |
| /** |
| * Defines the size of the message in the buffer. It also determines last position that buffer |
| * can be read or write. Last byte to be accessed is in position {@code limit() -1}. |
| * @return indicate last position |
| */ |
| int limit(); |
| |
| /** |
| * Request capacity of the buffer. In case buffer is already larger |
| * than the requested, this method will just return true. Otherwise |
| * It might try to resize the buffer. |
| * |
| * @return true if buffer is able to offer |
| * the requested capacity |
| */ |
| boolean requestCapacity(int capacity); |
| } |