Package org.bson.io

Class BasicOutputBuffer

All Implemented Interfaces:
Closeable, Flushable, AutoCloseable, BsonOutput

public class BasicOutputBuffer extends OutputBuffer
A BSON output stream that stores the output in a single, un-pooled byte array.
  • Constructor Details

    • BasicOutputBuffer

      public BasicOutputBuffer()
      Construct an instance with a default initial byte array size.
    • BasicOutputBuffer

      public BasicOutputBuffer(int initialSize)
      Construct an instance with the specified initial byte array size.
      Parameters:
      initialSize - the initial size of the byte array
  • Method Details

    • getInternalBuffer

      public byte[] getInternalBuffer()
      Gets the internal buffer.
      Returns:
      the internal buffer
      Since:
      3.3
    • write

      public void write(byte[] b)
      Overrides:
      write in class OutputBuffer
    • writeBytes

      public void writeBytes(byte[] bytes, int offset, int length)
      Description copied from interface: BsonOutput
      Writes length bytes from the byte array, starting at offset.
      Parameters:
      bytes - the non-null byte array
      offset - the offset to start writing from
      length - the number of bytes to write
    • writeByte

      public void writeByte(int value)
      Description copied from interface: BsonOutput
      Write a single byte to the stream. The byte to be written is the eight low-order bits of the specified value. The 24 high-order bits of the value are ignored.
      Parameters:
      value - the value
    • write

      protected void write(int absolutePosition, int value)
      Description copied from class: OutputBuffer
      Write the specified byte at the specified position.
      Specified by:
      write in class OutputBuffer
      Parameters:
      absolutePosition - the position, which must be greater than equal to 0 and at least 4 less than the stream size
      value - the value to write. The 24 high-order bits of the value are ignored.
    • getPosition

      public int getPosition()
      Description copied from interface: BsonOutput
      Gets the current position in the stream.
      Returns:
      the current position
    • getSize

      public int getSize()
      Description copied from interface: BsonOutput
      Gets the current size of the stream in number of bytes.
      Returns:
      size of data so far
    • pipe

      public int pipe(OutputStream out) throws IOException
      Description copied from class: OutputBuffer
      Pipe the contents of this output buffer into the given output stream
      Specified by:
      pipe in class OutputBuffer
      Parameters:
      out - the stream to pipe to
      Returns:
      number of bytes written to the stream
      Throws:
      IOException - if the stream throws an exception
    • truncateToPosition

      public void truncateToPosition(int newPosition)
      Description copied from interface: BsonOutput
      Truncates this stream to the new position. After this call, both size and position will equal the new position.
      Specified by:
      truncateToPosition in interface BsonOutput
      Specified by:
      truncateToPosition in class OutputBuffer
      Parameters:
      newPosition - the new position, which must be greater than or equal to 0 and less than the current size.
    • getByteBuffers

      public List<ByteBuf> getByteBuffers()
      Description copied from class: OutputBuffer
      Get a list of byte buffers that are prepared to be read from; in other words, whose position is 0 and whose limit is the number of bytes that should read.

      Note that the byte buffers may be read-only.

      Specified by:
      getByteBuffers in class OutputBuffer
      Returns:
      the non-null list of byte buffers, in LITTLE_ENDIAN order
    • close

      public void close()
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface BsonOutput
      Specified by:
      close in interface Closeable
      Overrides:
      close in class OutputBuffer