package cz.cuni.mff.d3s.been.socketworks.twoway;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
/**
* An buffer of byte arrays received in a message
*/
class Frames implements Iterable<byte[]> {
private final List<byte[]> frames;
/**
* Create the frame buffer
*/
Frames() {
this.frames = new ArrayList<byte[]>(3);
}
/**
* Create the frame buffer
*
* @return A new frame buffer
*/
public static Frames create() {
return new Frames();
}
/**
* Add a byte array to the buffer
*
* @param frame Array to add
*/
public void add(byte[] frame) {
frames.add(frame);
}
@Override
public Iterator<byte[]> iterator() {
return frames.iterator();
}
@Override
public String toString() {
final StringBuilder sb = new StringBuilder();
final Iterator<byte[]> frameIt = iterator();
while (frameIt.hasNext()) {
// We're mostly assuming to send legible strings over frame channels
sb.append(Arrays.toString(frameIt.next()));
}
return sb.toString();
}
}