package org.corfudb.protocols.wireprotocol; import com.google.common.collect.Range; import io.netty.buffer.ByteBuf; import lombok.AllArgsConstructor; import lombok.Data; import java.util.UUID; /** * Created by mwei on 8/11/16. */ @Data @AllArgsConstructor public class ReadRequest implements ICorfuPayload<ReadRequest> { final Range<Long> range; final UUID streamID; public ReadRequest(ByteBuf buf) { range = ICorfuPayload.rangeFromBuffer(buf, Long.class); if (ICorfuPayload.fromBuffer(buf, Boolean.class)) { streamID = ICorfuPayload.fromBuffer(buf, UUID.class); } else { streamID = null; } } public ReadRequest(Long address) { range = Range.singleton(address); streamID = null; } @Override public void doSerialize(ByteBuf buf) { ICorfuPayload.serialize(buf, range); ICorfuPayload.serialize(buf, streamID != null); if (streamID != null) { ICorfuPayload.serialize(buf, streamID); } } }