package org.ovirt.engine.core.bll.tasks.interfaces;
import java.util.Map;
import org.ovirt.engine.core.bll.tasks.AsyncTaskState;
import org.ovirt.engine.core.common.VdcObjectType;
import org.ovirt.engine.core.common.asynctasks.AsyncTaskParameters;
import org.ovirt.engine.core.common.businessentities.AsyncTaskStatus;
import org.ovirt.engine.core.compat.Guid;
public interface SPMTask {
void concreteStartPollingTask();
void startPollingTask();
/**
* For each task set its updated status retrieved from VDSM.
*
* @param returnTaskStatus
* - Task status returned from VDSM.
*/
void updateTask(AsyncTaskStatus returnTaskStatus);
void clearAsyncTask();
void clearAsyncTask(boolean forceDelete);
Object getCommandId();
long getLastAccessToStatusSinceEnd();
AsyncTaskStatus getLastTaskStatus();
void setLastTaskStatus(AsyncTaskStatus taskStatus);
AsyncTaskParameters getParameters();
boolean getShouldPoll();
AsyncTaskState getState();
Guid getStoragePoolID();
Guid getVdsmTaskId();
/**
* Update task last access date ,only for not active task.
*/
void setLastStatusAccessTime();
void setParameters(AsyncTaskParameters value);
void setState(AsyncTaskState value);
void stopTask();
void stopTask(boolean forceFinish);
void setPartiallyCompletedCommandTask(boolean val);
boolean isPartiallyCompletedCommandTask();
Map<Guid, VdcObjectType> getEntitiesMap();
void setEntitiesMap(Map<Guid, VdcObjectType> entitiesMap);
void setZombieTask(boolean val);
boolean isZombieTask();
}