package ctbrec.recorder.postprocessing;

import java.io.IOException;
import java.io.Serializable;
import java.util.Map;

import ctbrec.Config;
import ctbrec.Recording;
import ctbrec.recorder.RecordingManager;

public interface PostProcessor extends Serializable {
    String getName();

    /**
     * Runs the post-processing code on the given recording
     * @param rec the recording to post-process
     * @param recordingManager
     * @param config
     * @return false to stop futher post-processing, true to continue
     * @throws IOException
     * @throws InterruptedException
     */
    boolean postprocess(Recording rec, RecordingManager recordingManager, Config config) throws IOException, InterruptedException;

    Map<String, String> getConfig();
    void setConfig(Map<String, String> conf);
}
