Package io.protostuff
Class LinkedBuffer
- java.lang.Object
-
- io.protostuff.LinkedBuffer
-
public final class LinkedBuffer extends java.lang.Object
A 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[]
buffer
static int
DEFAULT_BUFFER_SIZE
The default buffer size for aLinkedBuffer
.static int
MIN_BUFFER_SIZE
The minimum buffer size for aLinkedBuffer
.(package private) LinkedBuffer
next
(package private) int
offset
(package private) int
start
-
Constructor Summary
Constructors Constructor Description LinkedBuffer(byte[] buffer, int offset)
Uses the buffer starting at the specifiedoffset
LinkedBuffer(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 specifiedoffset
and appends to the provided bufferappendTarget
.LinkedBuffer(int size)
Creates a buffer with the specifiedsize
.LinkedBuffer(int size, LinkedBuffer appendTarget)
Creates a buffer with the specifiedsize
and appends to the provided bufferappendTarget
.LinkedBuffer(LinkedBuffer viewSource, LinkedBuffer appendTarget)
Creates a view from the bufferviewSource
and appends the view to the provided bufferappendTarget
.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static LinkedBuffer
allocate()
Allocates a new buffer with default size.static LinkedBuffer
allocate(int size)
Allocates a new buffer with the specified size.static LinkedBuffer
allocate(int size, LinkedBuffer previous)
Allocates a new buffer with the specified size and appends it to the previous buffer.LinkedBuffer
clear()
The offset will be reset to its starting position.static LinkedBuffer
use(byte[] buffer)
Uses the existing byte array as the internal buffer.static LinkedBuffer
use(byte[] buffer, int start)
Uses the existing byte array as the internal buffer.static LinkedBuffer
wrap(byte[] array, int offset, int length)
Wraps the byte array buffer as a read-only buffer.static int
writeTo(java.io.DataOutput out, LinkedBuffer node)
Writes the contents of theLinkedBuffer
into theDataOutput
.static int
writeTo(java.io.OutputStream out, LinkedBuffer node)
Writes the contents of theLinkedBuffer
into 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 specifiedsize
and 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 specifiedoffset
and 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 bufferviewSource
and 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.IOException
Writes the contents of theLinkedBuffer
into 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.IOException
Writes the contents of theLinkedBuffer
into 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.
-
-