org.bouncycastle.crypto.tls

## Class ByteQueue

- java.lang.Object
- - org.bouncycastle.crypto.tls.ByteQueue

    public class ByteQueue
    extends java.lang.Object

A queue for bytes.

This file could be more optimized.

### Constructor Summary

Constructors
Constructor and Description
`ByteQueue()`

### Method Summary

Methods
`void` `addData(byte[] data, int offset, int len)` Add some data to our buffer.
`static int` `nextTwoPow(int i)`
`void` `read(byte[] buf, int offset, int len, int skip)` Read data from the buffer.
`void` `removeData(int i)` Remove some bytes from our data from the beginning.
`int` `size()`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### ByteQueue

    public ByteQueue()

### Method Detail

#### nextTwoPow

    public static final int nextTwoPow(int i)

Returns:
  The smallest number which can be written as 2^x which is bigger than i.

#### read

    public void read(byte[] buf,
            int offset,
            int len,
            int skip)

Read data from the buffer.

Parameters:
  `buf` - The buffer where the read data will be copied to.
  `offset` - How many bytes to skip at the beginning of buf.
  `len` - How many bytes to read at all.
  `skip` - How many bytes from our data to skip.

#### addData

    public void addData(byte[] data,
               int offset,
               int len)

Add some data to our buffer.

Parameters:
  `data` - A byte-array to read data from.
  `offset` - How many bytes to skip at the beginning of the array.
  `len` - How many bytes to read from the array.

#### removeData

    public void removeData(int i)

Remove some bytes from our data from the beginning.

Parameters:
  `i` - How many bytes to remove.

#### size

    public int size()

Returns:
  The number of bytes which are available in this buffer.