package lsr.paxos.test;

import java.io.ByteArrayInputStream;
import java.io.DataInputStream;
import java.io.IOException;
import java.io.Serializable;
import java.nio.ByteBuffer;

public class MapServiceCommand implements Serializable {
    private static final long serialVersionUID = 1L;
    private final Long key;
    private final Long value;

    public MapServiceCommand(Long key, Long value) {
        this.key = key;
        this.value = value;
    }

    public MapServiceCommand(byte[] bytes) throws IOException {
        DataInputStream dataInput = new DataInputStream(new ByteArrayInputStream(bytes));
        key = dataInput.readLong();
        value = dataInput.readLong();
    }

    public Long getKey() {
        return key;
    }

    public Long getValue() {
        return value;
    }

    public byte[] toByteArray() {
        ByteBuffer buffer = ByteBuffer.allocate(16);
        buffer.putLong(key);
        buffer.putLong(value);
        return buffer.array();
    }

    public String toString() {
        return String.format("[key=%d, value=%d]", key, value);
    }
}
