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,ByteBufferBsonOutput
public abstract class OutputBuffer extends OutputStream implements BsonOutput
An abstract base class for classes implementingBsonOutput.
-
-
Constructor Summary
Constructors Constructor Description OutputBuffer()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description voidclose()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.abstract intpipe(OutputStream out)Pipe the contents of this output buffer into the given output streamintsize()Gets the output size in bytes.byte[]toByteArray()Gets a copy of the buffered bytes.StringtoString()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 interface org.bson.io.BsonOutput
getPosition, getSize, writeByte, writeBytes
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from class java.io.OutputStream
flush
-
-
-
-
Method Detail
-
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
public void writeString(String str)
Description copied from interface:BsonOutputWrites a BSON String to the stream.- Specified by:
writeStringin interfaceBsonOutput- Parameters:
str- the value
-
writeCString
public void writeCString(String value)
Description copied from interface:BsonOutputWrites a BSON CString to the stream.- Specified by:
writeCStringin interfaceBsonOutput- Parameters:
value- the value
-
writeObjectId
public void writeObjectId(ObjectId value)
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
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: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:
pipe(java.io.OutputStream)
-
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:
writeInt32(int)
-
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:
writeInt64(long)
-
-