Package org.eclipse.sisu.space.asm
Class ByteVector
java.lang.Object
org.eclipse.sisu.space.asm.ByteVector
A dynamically extensible vector of bytes. This class is roughly equivalent to
a DataOutputStream on top of a ByteArrayOutputStream, but is more efficient.
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionConstructs a newByteVector
with a default initial size.ByteVector
(int initialSize) Constructs a newByteVector
with the given initial size. -
Method Summary
Modifier and TypeMethodDescription(package private) ByteVector
encodeUTF8
(String s, int i, int maxByteLength) Puts an UTF8 string into this byte vector.private void
enlarge
(int size) Enlarge this byte vector so that it can receive n more bytes.(package private) ByteVector
put11
(int b1, int b2) Puts two bytes into this byte vector.(package private) ByteVector
put12
(int b, int s) Puts a byte and a short into this byte vector.putByte
(int b) Puts a byte into this byte vector.putByteArray
(byte[] b, int off, int len) Puts an array of bytes into this byte vector.putInt
(int i) Puts an int into this byte vector.putLong
(long l) Puts a long into this byte vector.putShort
(int s) Puts a short into this byte vector.Puts an UTF8 string into this byte vector.
-
Field Details
-
data
byte[] dataThe content of this vector. -
length
int lengthActual number of bytes in this vector.
-
-
Constructor Details
-
ByteVector
public ByteVector()Constructs a newByteVector
with a default initial size. -
ByteVector
public ByteVector(int initialSize) Constructs a newByteVector
with the given initial size.- Parameters:
initialSize
- the initial size of the byte vector to be constructed.
-
-
Method Details
-
putByte
Puts a byte into this byte vector. The byte vector is automatically enlarged if necessary.- Parameters:
b
- a byte.- Returns:
- this byte vector.
-
put11
Puts two bytes into this byte vector. The byte vector is automatically enlarged if necessary.- Parameters:
b1
- a byte.b2
- another byte.- Returns:
- this byte vector.
-
putShort
Puts a short into this byte vector. The byte vector is automatically enlarged if necessary.- Parameters:
s
- a short.- Returns:
- this byte vector.
-
put12
Puts a byte and a short into this byte vector. The byte vector is automatically enlarged if necessary.- Parameters:
b
- a byte.s
- a short.- Returns:
- this byte vector.
-
putInt
Puts an int into this byte vector. The byte vector is automatically enlarged if necessary.- Parameters:
i
- an int.- Returns:
- this byte vector.
-
putLong
Puts a long into this byte vector. The byte vector is automatically enlarged if necessary.- Parameters:
l
- a long.- Returns:
- this byte vector.
-
putUTF8
Puts an UTF8 string into this byte vector. The byte vector is automatically enlarged if necessary.- Parameters:
s
- a String whose UTF8 encoded length must be less than 65536.- Returns:
- this byte vector.
-
encodeUTF8
Puts an UTF8 string into this byte vector. The byte vector is automatically enlarged if necessary. The string length is encoded in two bytes before the encoded characters, if there is space for that (i.e. if this.length - i - 2 >= 0).- Parameters:
s
- the String to encode.i
- the index of the first character to encode. The previous characters are supposed to have already been encoded, using only one byte per character.maxByteLength
- the maximum byte length of the encoded string, including the already encoded characters.- Returns:
- this byte vector.
-
putByteArray
Puts an array of bytes into this byte vector. The byte vector is automatically enlarged if necessary.- Parameters:
b
- an array of bytes. May be null to put len null bytes into this byte vector.off
- index of the fist byte of b that must be copied.len
- number of bytes of b that must be copied.- Returns:
- this byte vector.
-
enlarge
private void enlarge(int size) Enlarge this byte vector so that it can receive n more bytes.- Parameters:
size
- number of additional bytes that this byte vector should be able to receive.
-