package org.corfudb.protocols.wireprotocol;
import io.netty.buffer.ByteBuf;
import lombok.*;
import java.util.*;
/**
* Created by atai on 8/26/16.
*/
@Builder
@AllArgsConstructor
public class CommitRequest implements ICorfuPayload<CommitRequest> {
@Getter
final Map<UUID, Long> streams;
@Getter
final Long address;
@Getter
final Boolean commit;
@SuppressWarnings("unchecked")
public CommitRequest(ByteBuf buf) {
if (ICorfuPayload.fromBuffer(buf, Boolean.class)) {
streams = ICorfuPayload.mapFromBuffer(buf, UUID.class, Long.class);
} else { streams = null; }
address = ICorfuPayload.fromBuffer(buf, Long.class);
commit = ICorfuPayload.fromBuffer(buf, Boolean.class);
}
@Override
public void doSerialize(ByteBuf buf) {
ICorfuPayload.serialize(buf, streams != null);
if (streams != null) {
ICorfuPayload.serialize(buf, streams);
}
ICorfuPayload.serialize(buf, address);
ICorfuPayload.serialize(buf, commit);
}
}