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 InputPlugin { interface Control { List<TaskReport> run(TaskSource taskSource, Schema schema, int taskCount); } ConfigDiff transaction(ConfigSource config, InputPlugin.Control control); ConfigDiff resume(TaskSource taskSource, Schema schema, int taskCount, InputPlugin.Control control); void cleanup(TaskSource taskSource, Schema schema, int taskCount, List<TaskReport> successTaskReports); TaskReport run(TaskSource taskSource, Schema schema, int taskIndex, PageOutput output); ConfigDiff guess(ConfigSource config); }