All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.instaclustr.operations.OperationProgressTracker Maven / Gradle / Ivy

package com.instaclustr.operations;

public class OperationProgressTracker {

    private final Operation operation;
    private final int eventsToComplete;
    private int eventsCompleted = 0;

    private float partialUpdate = 0.0f;

    public OperationProgressTracker(final Operation operation,
                                    final int eventsToComplete) {
        if (eventsToComplete <= 0) {
            throw new IllegalArgumentException("Events to complete has to be greater than 0.");
        }

        this.operation = operation;
        this.eventsToComplete = eventsToComplete;
    }

    public synchronized void update() {
        this.operation.progress = (float) ++eventsCompleted / (float) eventsToComplete;
    }

    public void complete() {
        this.operation.progress = 1.0f;
    }
}





© 2015 - 2024 Weber Informatics LLC | Privacy Policy