package org.embulk.spi; import java.util.List; import org.embulk.config.TaskSource; import org.embulk.config.ConfigSource; import org.embulk.config.ConfigDiff; import org.embulk.config.TaskReport; public interface FileInputPlugin { interface Control { List<TaskReport> run(TaskSource taskSource, int taskCount); } ConfigDiff transaction(ConfigSource config, FileInputPlugin.Control control); ConfigDiff resume(TaskSource taskSource, int taskCount, FileInputPlugin.Control control); void cleanup(TaskSource taskSource, int taskCount, List<TaskReport> successTaskReports); TransactionalFileInput open(TaskSource taskSource, int taskIndex); }