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