Class ByteArray

java.lang.Object
org.yamcs.utils.ByteArray

public class ByteArray extends Object
byte array which grows and also supports writing/reading int, double, etc. All non byte operations are big endian.
  • 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

      public static ByteArray wrap(byte... array)
      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

      public void addSizePrefixedUTF(String v)
      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

      public void addNullTerminatedUTF(String v)
      Writes a string encoded in UTF as per DataOutputStream.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

      public String getSizePrefixedUTF() throws DecodingException
      Throws:
      DecodingException
    • getNullTerminatedUTF

      public String getNullTerminatedUTF() throws DecodingException
      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

      public boolean equals(Object obj)
      Overrides:
      equals in class Object
    • reset

      public void reset()
    • reset

      public void reset(int length)
    • array

      public byte[] array()
      get the backing array
      Returns:
      the backing array
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • position

      public int position()