package ch.ethz.syslab.telesto.common.protocol;
import java.nio.ByteBuffer;
import ch.ethz.syslab.telesto.common.model.Message;
import ch.ethz.syslab.telesto.common.protocol.handler.PacketProcessingException;
import ch.ethz.syslab.telesto.common.protocol.handler.ProtocolHandler;
/*
* Do not edit this file!
*
* Edit the template at tools/protocol/telesto/templates/packet.java instead.
*/
public class PutMessagePacket extends Packet {
public Message message;
public int[] additionalQueueIds;
public PutMessagePacket() {
}
public PutMessagePacket(Message message, int[] additionalQueueIds) {
this.message = message;
this.additionalQueueIds = additionalQueueIds;
}
public PutMessagePacket(int packetId, Message message, int[] additionalQueueIds) {
this.packetId = packetId;
this.message = message;
this.additionalQueueIds = additionalQueueIds;
}
@Override
public byte methodId() {
return 49;
}
@Override
public void emit(ByteBuffer buffer) {
int lengthIndex = buffer.position();
buffer.position(lengthIndex + 2);
buffer.put(methodId());
buffer.putInt(packetId);
putMessage(buffer, message);
buffer.putInt(additionalQueueIds.length);
for (int i = 0; i < additionalQueueIds.length; i++) {
buffer.putInt(additionalQueueIds[i]);
}
buffer.putShort(lengthIndex, (short) (buffer.position() - lengthIndex - 2));
}
@Override
public void parse(ByteBuffer buffer) {
packetId = buffer.getInt();
message = getMessage(buffer);
additionalQueueIds = new int[buffer.getInt()];
for (int i = 0; i < additionalQueueIds.length; i++) {
additionalQueueIds[i] = buffer.getInt();
}
}
@Override
public PutMessagePacket newInstance() {
return new PutMessagePacket();
}
public Packet getHandled(ProtocolHandler handler) throws PacketProcessingException {
return handler.handle((PutMessagePacket) this);
}
public String toString() {
return "PutMessagePacket";
}
}