package be.iminds.ilabt.jfed.experimenter_gui.tasks;

import be.iminds.ilabt.jfed.highlevel.model.Slice;
import be.iminds.ilabt.jfed.lowlevel.api_wrapper.AggregateManagerWrapper;
import be.iminds.ilabt.jfed.fedmon.webapi.service.json.*;
import be.iminds.ilabt.jfed.util.GeniUrn;
import javafx.stage.Window;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;

/**
 * User: twalcari
 * Date: 1/28/2015
 * Time: 10:12
 */
public interface TasksFactory {
    RecoverSliceTask createRecoverSliceTask(GeniUrn sliceUrn);

    RecoverSliceTask createRecoverSliceTask(Slice slice);

    DeleteDiskImageTask createDeleteDiskImageTask(Server auth, AggregateManagerWrapper.ImageInfo imageInfo);

    OpenRequestRspecTask createOpenRequestRspecTask(Window parentWindow, File file) throws FileNotFoundException;

    OpenRequestRspecTask createOpenRequestRspecTask(Window parentWindow, InputStream inputStream, long fileLength, String name, File defaultSaveFile);

    OpenRequestRspecTask createOpenRequestRspecTask(Window parentWindow, String urlString) throws IOException;

    FetchAllSlicesInfoTask createFetchAllSlicesInfoTask();

    OpenTutorialTask createOpenTutorialTask(Window dialogOwnerWindow, String urlString) throws IOException;
}
