Package org.bson.io

Class OutputBuffer

java.lang.Object
java.io.OutputStream
org.bson.io.OutputBuffer
All Implemented Interfaces:
Closeable, Flushable, AutoCloseable, BsonOutput
Direct Known Subclasses:
BasicOutputBuffer

public abstract class OutputBuffer extends OutputStream implements BsonOutput
An abstract base class for classes implementing BsonOutput.
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    void
     
    abstract List<ByteBuf>
    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.
    abstract int
    Pipe the contents of this output buffer into the given output stream
    int
    Gets the output size in bytes.
    byte[]
    Gets a copy of the buffered bytes.
     
    abstract void
    truncateToPosition(int newPosition)
    Truncates this stream to the new position.
    void
    write(byte[] b)
     
    void
    write(byte[] bytes, int offset, int length)
     
    void
    write(int value)
     
    protected abstract void
    write(int position, int value)
    Write the specified byte at the specified position.
    void
    writeBytes(byte[] bytes)
    Writes all the bytes in the byte array to the stream.
    void
    Writes a BSON CString to the stream.
    void
    writeDouble(double x)
    Writes a BSON double to the stream.
    void
    writeInt(int value)
    Writes the given integer value to the buffer.
    void
    writeInt32(int value)
    Writes a 32-bit BSON integer to the stream.
    void
    writeInt32(int position, int value)
    Writes a 32-bit BSON integer to the stream at the given position.
    void
    writeInt64(long value)
    Writes a 64-bit BSON integer to the stream.
    void
    writeLong(long value)
    Writes the given long value to the buffer.
    void
    Writes a BSON ObjectId to the stream.
    void
    Writes a BSON String to the stream.

    Methods inherited from class java.io.OutputStream

    flush, nullOutputStream

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait

    Methods inherited from interface org.bson.io.BsonOutput

    getPosition, getSize, writeByte, writeBytes
  • Constructor Details

    • OutputBuffer

      public OutputBuffer()
  • Method Details

    • write

      public void write(byte[] b)
      Overrides:
      write in class OutputStream
    • 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 OutputStream
    • write

      public void write(byte[] bytes, int offset, int length)
      Overrides:
      write in class OutputStream
    • writeBytes

      public void writeBytes(byte[] bytes)
      Description copied from interface: BsonOutput
      Writes all the bytes in the byte array to the stream.
      Specified by:
      writeBytes in interface BsonOutput
      Parameters:
      bytes - the non-null byte array
    • writeInt32

      public void writeInt32(int value)
      Description copied from interface: BsonOutput
      Writes a 32-bit BSON integer to the stream.
      Specified by:
      writeInt32 in interface BsonOutput
      Parameters:
      value - the value
    • writeInt32

      public void writeInt32(int position, int value)
      Description copied from interface: BsonOutput
      Writes a 32-bit BSON integer to the stream at the given position. This is useful for patching in the size of a document once the last byte of it has been encoded and its size it known.
      Specified by:
      writeInt32 in interface BsonOutput
      Parameters:
      position - the position to write the value, which must be greater than or equal to 0 and less than or equal to the current size
      value - the value
    • writeInt64

      public void writeInt64(long value)
      Description copied from interface: BsonOutput
      Writes a 64-bit BSON integer to the stream.
      Specified by:
      writeInt64 in interface BsonOutput
      Parameters:
      value - the value
    • writeDouble

      public void writeDouble(double x)
      Description copied from interface: BsonOutput
      Writes a BSON double to the stream.
      Specified by:
      writeDouble in interface BsonOutput
      Parameters:
      x - the value
    • writeString

      public void writeString(String str)
      Description copied from interface: BsonOutput
      Writes a BSON String to the stream.
      Specified by:
      writeString in interface BsonOutput
      Parameters:
      str - the value
    • writeCString

      public void writeCString(String value)
      Description copied from interface: BsonOutput
      Writes a BSON CString to the stream.
      Specified by:
      writeCString in interface BsonOutput
      Parameters:
      value - the value
    • writeObjectId

      public void writeObjectId(ObjectId value)
      Description copied from interface: BsonOutput
      Writes a BSON ObjectId to the stream.
      Specified by:
      writeObjectId in interface BsonOutput
      Parameters:
      value - the value
    • size

      public int size()
      Gets the output size in bytes.
      Returns:
      the size
    • pipe

      public abstract int pipe(OutputStream out) throws IOException
      Pipe the contents of this output buffer into the given output stream
      Parameters:
      out - the stream to pipe to
      Returns:
      number of bytes written to the stream
      Throws:
      IOException - if the stream throws an exception
    • getByteBuffers

      public abstract List<ByteBuf> getByteBuffers()
      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.

      Returns:
      the non-null list of byte buffers, in LITTLE_ENDIAN order
    • truncateToPosition

      public abstract 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
      Parameters:
      newPosition - the new position, which must be greater than or equal to 0 and less than the current size.
    • toByteArray

      public byte[] toByteArray()
      Gets a copy of the buffered bytes.
      Returns:
      the byte array
      See Also:
    • write

      public void write(int value)
      Specified by:
      write in class OutputStream
    • writeInt

      public void writeInt(int value)
      Writes the given integer value to the buffer.
      Parameters:
      value - the value to write
      See Also:
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • write

      protected abstract void write(int position, int value)
      Write the specified byte at the specified position.
      Parameters:
      position - 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.
    • writeLong

      public void writeLong(long value)
      Writes the given long value to the buffer.
      Parameters:
      value - the value to write
      See Also: