blob: 56a13de14924d02503bc9601979308abc4da3729 [file] [log] [blame]
package com.intellij.openapi.externalSystem.service.internal;
import com.intellij.openapi.externalSystem.model.task.ExternalSystemTaskId;
import com.intellij.openapi.externalSystem.model.task.ExternalSystemTaskType;
import org.jetbrains.annotations.NotNull;
import java.rmi.RemoteException;
import java.util.Map;
import java.util.Set;
/**
* Represents a service that exposes information about the tasks being processed.
*
* @author Denis Zhdanov
* @since 2/8/12 1:46 PM
*/
public interface ExternalSystemTaskAware {
/**
* Allows to check if current service executes the target task.
*
* @param id target task's id
* @return <code>true</code> if a task with the given id is executed at the moment by the current service;
* <code>false</code> otherwise
* @throws RemoteException as required by RMI
*/
boolean isTaskInProgress(@NotNull ExternalSystemTaskId id) throws RemoteException;
/**
* Allows to cancel the target task by the current service.
*
*
* @param id target task's id
* @return <code>true</code> if a task was successfully canceled;
* <code>false</code> otherwise
* @throws RemoteException as required by RMI
*/
boolean cancelTask(@NotNull ExternalSystemTaskId id) throws RemoteException;
/**
* Allows to ask current service for all tasks being executed at the moment.
*
* @return ids of all tasks being executed at the moment grouped by type
* @throws RemoteException as required by RMI
*/
@NotNull
Map<ExternalSystemTaskType, Set<ExternalSystemTaskId>> getTasksInProgress() throws RemoteException;
}