#pragma once
#include <stdint.h>
#include <atomic>
namespace lbug {
namespace common {
class ProgressBarDisplay {
public:
ProgressBarDisplay() : pipelineProgress{0}, numPipelines{0}, numPipelinesFinished{0} {};
virtual ~ProgressBarDisplay() = default;
virtual void updateProgress(uint64_t queryID, double newPipelineProgress,
uint32_t newNumPipelinesFinished) = 0;
virtual void finishProgress(uint64_t queryID) = 0;
void setNumPipelines(uint32_t newNumPipelines) { numPipelines = newNumPipelines; };
protected:
std::atomic<double> pipelineProgress;
uint32_t numPipelines;
std::atomic<uint32_t> numPipelinesFinished;
};
} }