package org.corfudb.protocols.wireprotocol; import io.netty.buffer.ByteBuf; import lombok.RequiredArgsConstructor; import java.util.Arrays; import java.util.Map; import java.util.function.Function; import java.util.stream.Collectors; /** * Created by mwei on 8/9/16. */ @RequiredArgsConstructor public enum WriteMode implements ICorfuPayload<WriteMode> { NORMAL((byte) 0), REPLEX_GLOBAL((byte) 1), REPLEX_HYBRID((byte) 2), REPLEX_STREAM((byte) 3); final int val; byte asByte() { return (byte) val; } @Override public void doSerialize(ByteBuf buf) { buf.writeByte(asByte()); } static Map<Byte, WriteMode> typeMap = Arrays.stream(WriteMode.values()) .collect(Collectors.toMap(WriteMode::asByte, Function.identity())); }