package com.sungardas.enhancedsnapshots.dto;
import static com.sungardas.enhancedsnapshots.aws.dynamodb.model.TaskEntry.TaskEntryStatus.RUNNING;
public class CopyingTaskProgressDto extends TaskProgressDto {
public static final long BYTES_IN_MEGABYTE = 1000000;
public static final double MEGABYTE_IN_GIBIBYTE = 1073.74;
private double progressMin;
private double progressMax;
private long volumeSize;
public CopyingTaskProgressDto(final String taskId, final double progressMin, final double progressMax, long volumeSize) {
setTaskId(taskId);
this.progressMax = progressMax;
this.progressMin = progressMin;
this.volumeSize = (long) (volumeSize * MEGABYTE_IN_GIBIBYTE) * BYTES_IN_MEGABYTE;
setStatus(RUNNING);
}
public void setCopyingProgress(final long progress) {
double p = ((double)progress)/volumeSize;
setProgress(progressMin + (((progressMax - progressMin) / 100) * (p * 100)));
setMessage("Copying: " + (progress / BYTES_IN_MEGABYTE) + "/" + (volumeSize / BYTES_IN_MEGABYTE) + "MB");
}
}