package de.tum.in.www1.jReto.routing.packets;
import java.nio.ByteBuffer;
import java.util.UUID;
import de.tum.in.www1.jReto.packet.Constants;
import de.tum.in.www1.jReto.packet.DataChecker;
import de.tum.in.www1.jReto.packet.DataReader;
import de.tum.in.www1.jReto.packet.DataWriter;
import de.tum.in.www1.jReto.packet.Packet;
import de.tum.in.www1.jReto.packet.PacketType;
/**
* This packet is used when establishing multicast connectinos to ensure that all destinations are actually connected.
* It only contains the sender's identifier and is sent by all peers once the hop connection establishment phase is complete.
*/
public class RoutedConnectionEstablishedConfirmationPacket implements Packet {
public final static PacketType TYPE = PacketType.ROUTED_CONNECTION_ESTABLISHED_CONFIRMATION;
public final static int LENGTH = Constants.PACKET_TYPE_SIZE + Constants.UUID_SIZE;
public final UUID source;
public RoutedConnectionEstablishedConfirmationPacket(UUID source) {
this.source = source;
}
public static RoutedConnectionEstablishedConfirmationPacket deserialize(ByteBuffer data) {
DataReader reader = new DataReader(data);
if (!DataChecker.check(reader, TYPE, LENGTH)) return null;
return new RoutedConnectionEstablishedConfirmationPacket(reader.getUUID());
}
public ByteBuffer serialize() {
DataWriter data = new DataWriter(LENGTH);
data.add(TYPE);
data.add(this.source);
return data.getData();
}
}