Makes sure the ByteBuffer has enough space for new data.
Makes sure the ByteBuffer has enough space for new data. If not, allocates a new ByteBuffer and returns it. The returned ByteBuffer must have little-endian ordering.
Number of bytes needed for new data
Completes the encoding and returns the ByteBuffer, merging the chain of buffers if necessary
Completes the encoding and returns a sequence of ByteBuffers