Package org.bson.io
Class BasicOutputBuffer
- java.lang.Object
-
- java.io.OutputStream
-
- org.bson.io.OutputBuffer
-
- org.bson.io.BasicOutputBuffer
-
- All Implemented Interfaces:
java.io.Closeable,java.io.Flushable,java.lang.AutoCloseable,BsonOutput
public class BasicOutputBuffer extends OutputBuffer
A BSON output stream that stores the output in a single, un-pooled byte array.
-
-
Constructor Summary
Constructors Constructor Description BasicOutputBuffer()Construct an instance with a default initial byte array size.BasicOutputBuffer(int initialSize)Construct an instance with the specified initial byte array size.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclose()java.util.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.byte[]getInternalBuffer()Gets the internal buffer.intgetPosition()Gets the current position in the stream.intgetSize()Gets the current size of the stream in number of bytes.intpipe(java.io.OutputStream out)Pipe the contents of this output buffer into the given output streamvoidtruncateToPosition(int newPosition)Truncates this stream to the new position.voidwrite(byte[] b)voidwriteByte(int value)Write a single byte to the stream.voidwriteBytes(byte[] bytes, int offset, int length)Writeslengthbytes from the byte array, starting atoffset.-
Methods inherited from class org.bson.io.OutputBuffer
size, toByteArray, toString, write, write, writeBytes, writeCString, writeDouble, writeInt, writeInt32, writeInt32, writeInt64, writeLong, writeObjectId, writeString
-
-
-
-
Constructor Detail
-
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 Detail
-
getInternalBuffer
public byte[] getInternalBuffer()
Gets the internal buffer.- Returns:
- the internal buffer
- Since:
- 3.3
-
write
public void write(byte[] b)
- Overrides:
writein classOutputBuffer
-
writeBytes
public void writeBytes(byte[] bytes, int offset, int length)Description copied from interface:BsonOutputWriteslengthbytes from the byte array, starting atoffset.- Parameters:
bytes- the non-null byte arrayoffset- the offset to start writing fromlength- the number of bytes to write
-
writeByte
public void writeByte(int value)
Description copied from interface:BsonOutputWrite 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
-
getPosition
public int getPosition()
Description copied from interface:BsonOutputGets the current position in the stream.- Returns:
- the current position
-
getSize
public int getSize()
Description copied from interface:BsonOutputGets the current size of the stream in number of bytes.- Returns:
- size of data so far
-
pipe
public int pipe(java.io.OutputStream out) throws java.io.IOExceptionDescription copied from class:OutputBufferPipe the contents of this output buffer into the given output stream- Specified by:
pipein classOutputBuffer- Parameters:
out- the stream to pipe to- Returns:
- number of bytes written to the stream
- Throws:
java.io.IOException- if the stream throws an exception
-
truncateToPosition
public void truncateToPosition(int newPosition)
Description copied from interface:BsonOutputTruncates this stream to the new position. After this call, both size and position will equal the new position.- Specified by:
truncateToPositionin interfaceBsonOutput- Specified by:
truncateToPositionin classOutputBuffer- Parameters:
newPosition- the new position, which must be greater than or equal to 0 and less than the current size.
-
getByteBuffers
public java.util.List<ByteBuf> getByteBuffers()
Description copied from class:OutputBufferGet 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:
getByteBuffersin classOutputBuffer- Returns:
- the non-null list of byte buffers, in LITTLE_ENDIAN order
-
close
public void close()
- Specified by:
closein interfacejava.lang.AutoCloseable- Specified by:
closein interfaceBsonOutput- Specified by:
closein interfacejava.io.Closeable- Overrides:
closein classOutputBuffer
-
-