All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.journalkeeper.core.serialize.WrappedState Maven / Gradle / Ivy

There is a newer version: 0.1.11
Show newest version
package io.journalkeeper.core.serialize;

import java.io.IOException;
import java.nio.file.Path;
import java.util.Properties;

/**
 * @author LiYue
 * Date: 2020/2/18
 */
public interface WrappedState {


    /**
     * 在状态state上执行命令entries,JournalKeeper保证执行操作命令的线性语义。要求:
     * 
    *
  • 原子性
  • *
  • 幂等性
  • *
* 成功返回执行结果,否则抛异常。 * * @param entry 待执行的命令 * @return 执行结果。See {@link WrappedStateResult} */ default WrappedStateResult executeAndNotify(E entry) { return new WrappedStateResult<>(execute(entry), null); } /** * 在状态state上执行命令entries,JournalKeeper保证执行操作命令的线性语义。要求: *
    *
  • 原子性
  • *
  • 幂等性
  • *
* 成功返回执行结果,否则抛异常。 * * @param entry 待执行的命令 * @return 执行结果。 */ ER execute(E entry); /** * 查询 * * @param query 查询条件 * @return 查询结果 */ QR query(Q query); /** * 从磁盘中恢复状态机中的状态数据,在状态机启动的时候调用。 * * @param path 存放state文件的路径 * @param properties 属性 * @throws IOException 发生IO异常时抛出 */ void recover(Path path, Properties properties) throws IOException; default void close() { } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy