Package io.protostuff
Class LinkedBuffer
- java.lang.Object
-
- io.protostuff.LinkedBuffer
-
public final class LinkedBuffer extends java.lang.ObjectA buffer that wraps a byte array and has a reference to the next buffer for dynamic increase.
-
-
Field Summary
Fields Modifier and Type Field Description (package private) byte[]bufferstatic intDEFAULT_BUFFER_SIZEThe default buffer size for aLinkedBuffer.static intMIN_BUFFER_SIZEThe minimum buffer size for aLinkedBuffer.(package private) LinkedBuffernext(package private) intoffset(package private) intstart
-
Constructor Summary
Constructors Constructor Description LinkedBuffer(byte[] buffer, int offset)Uses the buffer starting at the specifiedoffsetLinkedBuffer(byte[] buffer, int start, int offset)LinkedBuffer(byte[] buffer, int start, int offset, LinkedBuffer appendTarget)LinkedBuffer(byte[] buffer, int offset, LinkedBuffer appendTarget)Uses the buffer starting at the specifiedoffsetand appends to the provided bufferappendTarget.LinkedBuffer(int size)Creates a buffer with the specifiedsize.LinkedBuffer(int size, LinkedBuffer appendTarget)Creates a buffer with the specifiedsizeand appends to the provided bufferappendTarget.LinkedBuffer(LinkedBuffer viewSource, LinkedBuffer appendTarget)Creates a view from the bufferviewSourceand appends the view to the provided bufferappendTarget.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static LinkedBufferallocate()Allocates a new buffer with default size.static LinkedBufferallocate(int size)Allocates a new buffer with the specified size.static LinkedBufferallocate(int size, LinkedBuffer previous)Allocates a new buffer with the specified size and appends it to the previous buffer.LinkedBufferclear()The offset will be reset to its starting position.static LinkedBufferuse(byte[] buffer)Uses the existing byte array as the internal buffer.static LinkedBufferuse(byte[] buffer, int start)Uses the existing byte array as the internal buffer.static LinkedBufferwrap(byte[] array, int offset, int length)Wraps the byte array buffer as a read-only buffer.static intwriteTo(java.io.DataOutput out, LinkedBuffer node)Writes the contents of theLinkedBufferinto theDataOutput.static intwriteTo(java.io.OutputStream out, LinkedBuffer node)Writes the contents of theLinkedBufferinto theOutputStream.
-
-
-
Field Detail
-
MIN_BUFFER_SIZE
public static final int MIN_BUFFER_SIZE
The minimum buffer size for aLinkedBuffer.- See Also:
- Constant Field Values
-
DEFAULT_BUFFER_SIZE
public static final int DEFAULT_BUFFER_SIZE
The default buffer size for aLinkedBuffer.- See Also:
- Constant Field Values
-
buffer
final byte[] buffer
-
start
final int start
-
offset
int offset
-
next
LinkedBuffer next
-
-
Constructor Detail
-
LinkedBuffer
LinkedBuffer(int size)
Creates a buffer with the specifiedsize.
-
LinkedBuffer
LinkedBuffer(int size, LinkedBuffer appendTarget)Creates a buffer with the specifiedsizeand appends to the provided bufferappendTarget.
-
LinkedBuffer
LinkedBuffer(byte[] buffer, int offset)Uses the buffer starting at the specifiedoffset
-
LinkedBuffer
LinkedBuffer(byte[] buffer, int start, int offset)
-
LinkedBuffer
LinkedBuffer(byte[] buffer, int offset, LinkedBuffer appendTarget)Uses the buffer starting at the specifiedoffsetand appends to the provided bufferappendTarget.
-
LinkedBuffer
LinkedBuffer(byte[] buffer, int start, int offset, LinkedBuffer appendTarget)
-
LinkedBuffer
LinkedBuffer(LinkedBuffer viewSource, LinkedBuffer appendTarget)
Creates a view from the bufferviewSourceand appends the view to the provided bufferappendTarget.
-
-
Method Detail
-
allocate
public static LinkedBuffer allocate()
Allocates a new buffer with default size.
-
allocate
public static LinkedBuffer allocate(int size)
Allocates a new buffer with the specified size.
-
allocate
public static LinkedBuffer allocate(int size, LinkedBuffer previous)
Allocates a new buffer with the specified size and appends it to the previous buffer.
-
wrap
public static LinkedBuffer wrap(byte[] array, int offset, int length)
Wraps the byte array buffer as a read-only buffer.
-
use
public static LinkedBuffer use(byte[] buffer)
Uses the existing byte array as the internal buffer.
-
use
public static LinkedBuffer use(byte[] buffer, int start)
Uses the existing byte array as the internal buffer.
-
writeTo
public static int writeTo(java.io.OutputStream out, LinkedBuffer node) throws java.io.IOExceptionWrites the contents of theLinkedBufferinto theOutputStream.- Returns:
- the total content size of the buffer.
- Throws:
java.io.IOException
-
writeTo
public static int writeTo(java.io.DataOutput out, LinkedBuffer node) throws java.io.IOExceptionWrites the contents of theLinkedBufferinto theDataOutput.- Returns:
- the total content size of the buffer.
- Throws:
java.io.IOException
-
clear
public LinkedBuffer clear()
The offset will be reset to its starting position. The buffer next to this will be dereferenced.
-
-