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