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
An abstract base class for classes implementing
BsonOutput
.-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
close()
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
(OutputStream out) Pipe the contents of this output buffer into the given output streamint
size()
Gets the output size in bytes.byte[]
Gets a copy of the buffered bytes.toString()
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
writeCString
(String value) 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
writeObjectId
(ObjectId value) Writes a BSON ObjectId to the stream.void
writeString
(String str) 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 classOutputStream
-
close
public void close()- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceBsonOutput
- Specified by:
close
in interfaceCloseable
- Overrides:
close
in classOutputStream
-
write
public void write(byte[] bytes, int offset, int length) - Overrides:
write
in classOutputStream
-
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 interfaceBsonOutput
- 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 interfaceBsonOutput
- 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 interfaceBsonOutput
- 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 sizevalue
- 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 interfaceBsonOutput
- 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 interfaceBsonOutput
- Parameters:
x
- the value
-
writeString
Description copied from interface:BsonOutput
Writes a BSON String to the stream.- Specified by:
writeString
in interfaceBsonOutput
- Parameters:
str
- the value
-
writeCString
Description copied from interface:BsonOutput
Writes a BSON CString to the stream.- Specified by:
writeCString
in interfaceBsonOutput
- Parameters:
value
- the value
-
writeObjectId
Description copied from interface:BsonOutput
Writes a BSON ObjectId to the stream.- Specified by:
writeObjectId
in interfaceBsonOutput
- Parameters:
value
- the value
-
size
public int size()Gets the output size in bytes.- Returns:
- the size
-
pipe
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
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 interfaceBsonOutput
- 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 classOutputStream
-
writeInt
public void writeInt(int value) Writes the given integer value to the buffer.- Parameters:
value
- the value to write- See Also:
-
toString
-
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 sizevalue
- 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:
-