package org.ourgrid.broker.business.scheduler;
import java.util.List;
import java.util.Map;
import org.ourgrid.broker.business.scheduler.extensions.GenericTransferProgress;
import org.ourgrid.broker.status.JobStatusInfo;
import org.ourgrid.broker.status.JobWorkerStatus;
import org.ourgrid.common.executor.ExecutorResult;
import org.ourgrid.common.filemanager.FileInfo;
import org.ourgrid.common.interfaces.to.IncomingHandle;
import org.ourgrid.common.interfaces.to.MessageHandle;
import org.ourgrid.common.interfaces.to.OutgoingHandle;
import org.ourgrid.common.interfaces.to.RequestSpecification;
import org.ourgrid.common.internal.IResponseTO;
import org.ourgrid.common.specification.job.JobSpecification;
import org.ourgrid.common.specification.worker.WorkerSpecification;
/**
* Scheduler methods.
*/
public interface SchedulerIF {
public void start();
public void stop();
public void schedule(List<IResponseTO> responses);
public void addJob(JobSpecification jobSpec, int jobID, List<IResponseTO> responses);
public void cancelJob(int jobID, List<IResponseTO> responses);
public void cleanAllFinishedJobs(List<IResponseTO> responses);
public void cleanFinishedJob(int jobID, List<IResponseTO> responses);
public void finishRequests(List<IResponseTO> responses);
public void finishPeerRequests(String peerServiceID, List<IResponseTO> responses);
public void notifyWhenJobIsFinished(int jobID, String deploymentID, List<IResponseTO> responses);
public void setPeers(String[] peersID);
public void loginSucceed(String peerID, List<IResponseTO> responses);
public void hereIsWorker(String workerId, String workerPK, String senderPublicKey,
String peerAddress, RequestSpecification requestSpec, WorkerSpecification workerSpec, List<IResponseTO> responses);
public void localWorkerProviderFailure(String peerID);
public void workerFailure(String workerContainerID, List<IResponseTO> responses);
public void workerRecovery(String workerPublicKey, String workerDeploymentID, List<IResponseTO> responses);
public void jobEndedInterestedIsDown(String interestedID);
public void outgoingTransferCancelled(OutgoingHandle handle, long amountWritten, List<IResponseTO> responses);
public void outgoingTransferCompleted(OutgoingHandle handle, long amountWritten, List<IResponseTO> responses);
public void outgoingTransferFailed(OutgoingHandle handle, String failCause,
long amountWritten, List<IResponseTO> responses);
public void incomingTransferCompleted(IncomingHandle handle, long amountWritten, List<IResponseTO> responses);
public void incomingTransferFailed(IncomingHandle handle, String failCause,
long amountWritten, List<IResponseTO> responses);
public void transferRejected(OutgoingHandle handle, List<IResponseTO> responses);
public void updateTransferProgress(GenericTransferProgress transferProgress, List<IResponseTO> responses);
public void transferRequestReceived(IncomingHandle handle, List<IResponseTO> responses);
public void errorOcurred(String workerContainerID, String errorCause,
String gridProcessErrorType, List<IResponseTO> responses);
public void hereIsFileInfo(String workerContainerID, long transferHandle, FileInfo fileInfo, List<IResponseTO> responses);
public void hereIsGridProcessResult(String workerContainerID, ExecutorResult result, List<IResponseTO> responses);
public void workerIsReady(String workerContainerID, List<IResponseTO> responses);
public JobWorkerStatus getCompleteStatus();
public Map<Integer, JobStatusInfo> getJobsDescription();
public void sendMessage(MessageHandle handle);
}