java.lang.Object
org.yamcs.utils.ByteArray
byte array which grows and also supports writing/reading int, double, etc.
All non byte operations are big endian.
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidadd(byte x) add value to the arrayvoidadd(byte[] v) voidaddDouble(double x) voidaddInt(int x) voidaddLong(long x) voidWrites a string encoded in UTF as perDataOutputStream.writeUTF(String)terminated with a null charactervoidaddShort(short x) voidaddSizePrefixedProto(com.google.protobuf.MessageLite msg) Writes a protobuf message to the buffer.voidWrites a string preceded by its size in two bytes big endian.byte[]array()get the backing arrayvoidensureRemaining(int size) booleanbyteget()voidget(byte[] bp) byteget(int pos) get element at positiondoubleintgetInt()longgetLong()shortgetShort()<T extends com.google.protobuf.MessageLite.Builder>
voidgetSizePrefixedProto(T builder) intindexOf(byte x) Returns the index of the first occurrence of the specified element in the array, or -1 if the array does not contain the element.voidinsert(int pos, byte x) booleanisEmpty()intposition()voidreset()voidreset(int length) voidset(int pos, byte x) voidsetInt(int pos, int x) intsize()byte[]toArray()toString()static ByteArraywrap(byte... array) Creates the ByteArray with the backing array
-
Field Details
-
DEFAULT_CAPACITY
public static int DEFAULT_CAPACITY
-
-
Constructor Details
-
ByteArray
public ByteArray()Creates a sorted int array with a default initial capacity -
ByteArray
public ByteArray(int capacity) Creates an IntArray with a given initial capacity- Parameters:
capacity-
-
-
Method Details
-
wrap
Creates the ByteArray with the backing array- Parameters:
array-- Returns:
- a new object containing all the values from the passed array
-
ensureRemaining
public void ensureRemaining(int size) -
add
public void add(byte x) add value to the array- Parameters:
x- - value to be added
-
addShort
public void addShort(short x) -
addInt
public void addInt(int x) -
addLong
public void addLong(long x) -
add
public void add(byte[] v) -
addDouble
public void addDouble(double x) -
addSizePrefixedProto
public void addSizePrefixedProto(com.google.protobuf.MessageLite msg) Writes a protobuf message to the buffer. The message will be prefixed by its size in 4 bytes big endian.- Parameters:
msg-
-
addSizePrefixedUTF
Writes a string preceded by its size in two bytes big endian.The encoded byte array does not contain null characters
- Parameters:
v-- See Also:
-
addNullTerminatedUTF
Writes a string encoded in UTF as perDataOutputStream.writeUTF(String)terminated with a null character- Parameters:
v-
-
insert
public void insert(int pos, byte x) -
set
public void set(int pos, byte x) -
setInt
public void setInt(int pos, int x) -
get
public byte get() -
getShort
public short getShort() -
getInt
public int getInt() -
getLong
public long getLong() -
getDouble
public double getDouble() -
getSizePrefixedUTF
- Throws:
DecodingException
-
getNullTerminatedUTF
- Throws:
DecodingException
-
get
public void get(byte[] bp) -
getSizePrefixedProto
public <T extends com.google.protobuf.MessageLite.Builder> void getSizePrefixedProto(T builder) -
get
public byte get(int pos) get element at position- Parameters:
pos-- Returns:
- the element at the specified position
-
isEmpty
public boolean isEmpty() -
toArray
public byte[] toArray()- Returns:
- a copy of the underlying byte array with the current length
-
size
public int size() -
indexOf
public int indexOf(byte x) Returns the index of the first occurrence of the specified element in the array, or -1 if the array does not contain the element.- Parameters:
x- element which is searched for- Returns:
- the index of the first occurrence of the specified element in this list, or -1 if this list does not contain the element.
-
equals
-
reset
public void reset() -
reset
public void reset(int length) -
array
public byte[] array()get the backing array- Returns:
- the backing array
-
toString
-
position
public int position()
-