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
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidclose()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 intpipe(OutputStream out) Pipe the contents of this output buffer into the given output streamintsize()Gets the output size in bytes.byte[]Gets a copy of the buffered bytes.toString()abstract voidtruncateToPosition(int newPosition) Truncates this stream to the new position.voidwrite(byte[] b) voidwrite(byte[] bytes, int offset, int length) voidwrite(int value) protected abstract voidwrite(int position, int value) Write the specified byte at the specified position.voidwriteBytes(byte[] bytes) Writes all the bytes in the byte array to the stream.voidwriteCString(String value) Writes a BSON CString to the stream.voidwriteDouble(double x) Writes a BSON double to the stream.voidwriteInt(int value) Writes the given integer value to the buffer.voidwriteInt32(int value) Writes a 32-bit BSON integer to the stream.voidwriteInt32(int position, int value) Writes a 32-bit BSON integer to the stream at the given position.voidwriteInt64(long value) Writes a 64-bit BSON integer to the stream.voidwriteLong(long value) Writes the given long value to the buffer.voidwriteObjectId(ObjectId value) Writes a BSON ObjectId to the stream.voidwriteString(String str) Writes a BSON String to the stream.Methods inherited from class java.io.OutputStream
flush, nullOutputStreamMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods 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:
writein classOutputStream
-
close
public void close()- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceBsonOutput- Specified by:
closein interfaceCloseable- Overrides:
closein classOutputStream
-
write
public void write(byte[] bytes, int offset, int length) - Overrides:
writein classOutputStream
-
writeBytes
public void writeBytes(byte[] bytes) Description copied from interface:BsonOutputWrites all the bytes in the byte array to the stream.- Specified by:
writeBytesin interfaceBsonOutput- Parameters:
bytes- the non-null byte array
-
writeInt32
public void writeInt32(int value) Description copied from interface:BsonOutputWrites a 32-bit BSON integer to the stream.- Specified by:
writeInt32in interfaceBsonOutput- Parameters:
value- the value
-
writeInt32
public void writeInt32(int position, int value) Description copied from interface:BsonOutputWrites 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:
writeInt32in 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:BsonOutputWrites a 64-bit BSON integer to the stream.- Specified by:
writeInt64in interfaceBsonOutput- Parameters:
value- the value
-
writeDouble
public void writeDouble(double x) Description copied from interface:BsonOutputWrites a BSON double to the stream.- Specified by:
writeDoublein interfaceBsonOutput- Parameters:
x- the value
-
writeString
Description copied from interface:BsonOutputWrites a BSON String to the stream.- Specified by:
writeStringin interfaceBsonOutput- Parameters:
str- the value
-
writeCString
Description copied from interface:BsonOutputWrites a BSON CString to the stream.- Specified by:
writeCStringin interfaceBsonOutput- Parameters:
value- the value
-
writeObjectId
Description copied from interface:BsonOutputWrites a BSON ObjectId to the stream.- Specified by:
writeObjectIdin 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. The returned
ByteBufs must eventually be released explicitly, callingclose()may be not enough to release them. The caller must not use theByteBufs after closing thisOutputBuffer, though releasing them is allowed to be done after closing thisOutputBuffer.
-
truncateToPosition
public abstract 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- 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:
writein 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:
-