package org.corfudb.protocols.wireprotocol;
import io.netty.buffer.ByteBuf;
import lombok.AllArgsConstructor;
import lombok.Data;
import org.corfudb.runtime.view.Layout;
/**
* Request in second phase of Paxos.
*
* Created by mdhawan on 10/24/16.
*/
@Data
@AllArgsConstructor
public class LayoutProposeRequest implements ICorfuPayload<LayoutProposeRequest> {
// Marks the boundary of a layout update.
private long epoch;
// Number that denotes a round started by a proposer (within an epoch).
private long rank;
// Value proposed
private Layout layout;
public LayoutProposeRequest(ByteBuf buf) {
epoch = ICorfuPayload.fromBuffer(buf, Long.class);
rank = ICorfuPayload.fromBuffer(buf, Long.class);
layout = ICorfuPayload.fromBuffer(buf, Layout.class);
}
@Override
public void doSerialize(ByteBuf buf) {
ICorfuPayload.serialize(buf, epoch);
ICorfuPayload.serialize(buf, rank);
ICorfuPayload.serialize(buf, layout);
}
}