package io.fathom.cloud.state; import java.io.IOException; import com.google.protobuf.AbstractMessage.Builder; import com.google.protobuf.ByteString; import com.google.protobuf.InvalidProtocolBufferException; import com.google.protobuf.Message; public class ProtobufCodec implements Codec { @Override public ByteString serialize(Message message) { ByteString data = message.toByteString(); return data; } @Override public Message deserialize(Builder<?> builder, ByteString data) throws IOException { try { builder.mergeFrom(data); } catch (InvalidProtocolBufferException e) { throw new IOException("Error deserializing data", e); } return builder.build(); } }