/*
* Copyright (C) 2015 Actor LLC. <https://actor.im>
*/
package im.actor.core.network.mtp.entity;
import java.io.IOException;
import im.actor.runtime.bser.DataInput;
import im.actor.runtime.bser.DataOutput;
// Disabling Bounds checks for speeding up calculations
/*-[
#define J2OBJC_DISABLE_ARRAY_BOUND_CHECKS 1
]-*/
public class Container extends ProtoStruct {
public static final byte HEADER = (byte) 0x0A;
private ProtoMessage[] messages;
public Container(DataInput stream) throws IOException {
super(stream);
}
public Container(ProtoMessage[] messages) {
this.messages = messages;
}
public ProtoMessage[] getMessages() {
return messages;
}
@Override
protected byte getHeader() {
return HEADER;
}
@Override
protected void writeBody(DataOutput bs) throws IOException {
if (messages != null && messages.length > 0) {
bs.writeVarInt(messages.length);
for (ProtoMessage m : messages) {
m.writeObject(bs);
}
} else {
bs.writeVarInt(0);
}
}
@Override
protected void readBody(DataInput bs) throws IOException {
int size = (int) bs.readVarInt();
messages = new ProtoMessage[size];
for (int i = 0; i < size; ++i) {
messages[i] = new ProtoMessage(bs);
}
}
@Override
public String toString() {
return "Conatiner[" + messages.length + " items]";
}
}