package net.onrc.onos.core.datastore;

/**
 * Interface for a class to specify which K-V pair to batch read/write/delete.
 */
public interface IMultiEntryOperation {

    public enum STATUS {
        NOT_EXECUTED, SUCCESS, FAILED
    }

    public enum OPERATION {
        CREATE, FORCE_CREATE, UPDATE, READ, DELETE, FORCE_DELETE
    }

    public boolean hasSucceeded();

    public STATUS getStatus();

    public IKVTableID getTableId();

    public byte[] getKey();

    public byte[] getValue();

    public long getVersion();

    public OPERATION getOperation();

}
