1
0
Fork 0
mirror of https://github.com/HamletDuFromage/aio-switch-updater.git synced 2024-11-09 20:11:48 +00:00
AIO-switch-updater/include/progress_event.hpp

47 lines
1.4 KiB
C++

#pragma once
class ProgressEvent{
private:
ProgressEvent() {}
int _current = 0;
int _max = 60;
double _now = 0;
double _total = 0;
double _speed = 0;
long _status_code = 0;
public:
ProgressEvent(const ProgressEvent&) = delete;
ProgressEvent& operator=(const ProgressEvent &) = delete;
ProgressEvent(ProgressEvent &&) = delete;
ProgressEvent & operator=(ProgressEvent &&) = delete;
static auto& instance(){
static ProgressEvent event;
return event;
}
void reset() {
_current = 0;
_max = 60;
_now = 0;
_total = 0;
_speed = 0;
_status_code = 0;
}
inline void setTotalSteps(int steps) { _max = steps; }
inline void setTotalCount(double total) { _total = total; }
inline void setSpeed(double speed) { _speed = speed; }
inline void setStep(int step) { _current = step; }
inline void setStatusCode(long status_code) { _status_code = status_code; }
inline void incrementStep(int increment) {_current += increment; }
inline void setNow(double now) { _now = now; }
inline int getStep() { return _current; }
inline double getNow() { return _now; }
inline bool finished() { return (_current == _max) ; }
inline int getMax() { return _max; }
inline double getTotal() { return _total; }
inline double getSpeed() { return _speed; }
inline double getStatusCode() { return _status_code; }
};