From 222a8ae4f91faedf7d1bd9e9cdd28f48b1a7319e Mon Sep 17 00:00:00 2001
From: Pranav Srinivas Kumar
Date: Wed, 18 Dec 2019 11:51:58 -0600
Subject: [PATCH 1/5] Added explicit constructor for MultiProgress to remove
insert API
---
include/indicators/multi_progress.hpp | 31 ++++++++++++++++-----------
samples/multi_block_progress_bar.cpp | 5 +----
samples/multi_progress_bar.cpp | 5 +----
3 files changed, 21 insertions(+), 20 deletions(-)
diff --git a/include/indicators/multi_progress.hpp b/include/indicators/multi_progress.hpp
index 2dbb9c9..c643133 100644
--- a/include/indicators/multi_progress.hpp
+++ b/include/indicators/multi_progress.hpp
@@ -36,29 +36,36 @@ namespace indicators {
template class MultiProgress {
public:
- MultiProgress() { _bars.reserve(count); }
- template
- typename std::enable_if<(index < count), void>::type insert(Indicator &bar) {
- _bars.insert(_bars.begin() + index, 1, bar);
- bar._multi_progress_mode = true;
+ template ::type
+ >
+ explicit MultiProgress(Indicators&... bars) {
+ _bars = {bars...};
}
template
- typename std::enable_if<(index < count), void>::type set_progress(float value) {
- if (!_bars[index].get().is_completed())
- _bars[index].get().set_progress(value);
+ typename std::enable_if<(index >=0 && index < count), void>::type set_progress(float value) {
+ {
+ std::unique_lock lock{_mutex};
+ if (!_bars[index].get().is_completed())
+ _bars[index].get().set_progress(value);
+ }
_print_progress();
}
- template typename std::enable_if<(index < count), void>::type tick() {
- if (!_bars[index].get().is_completed())
- _bars[index].get().tick();
+ template typename std::enable_if<(index >=0 && index < count), void>::type tick() {
+ {
+ std::unique_lock lock{_mutex};
+ if (!_bars[index].get().is_completed())
+ _bars[index].get().tick();
+ }
_print_progress();
}
template
- typename std::enable_if<(index < count), bool>::type is_completed() const {
+ typename std::enable_if<(index >=0 && index < count), bool>::type is_completed() {
+ std::unique_lock lock{_mutex};
return _bars[index].get().is_completed();
}
diff --git a/samples/multi_block_progress_bar.cpp b/samples/multi_block_progress_bar.cpp
index d43aabb..de53051 100644
--- a/samples/multi_block_progress_bar.cpp
+++ b/samples/multi_block_progress_bar.cpp
@@ -24,10 +24,7 @@ int main() {
bar3.show_remaining_time();
bar3.set_prefix_text("Progress Bar #3 ");
- indicators::MultiProgress bars;
- bars.insert<0>(bar1);
- bars.insert<1>(bar2);
- bars.insert<2>(bar3);
+ indicators::MultiProgress bars(bar1, bar2, bar3);
std::cout << "Multiple Progress Bars:\n";
diff --git a/samples/multi_progress_bar.cpp b/samples/multi_progress_bar.cpp
index dc71c41..78360ec 100644
--- a/samples/multi_progress_bar.cpp
+++ b/samples/multi_progress_bar.cpp
@@ -39,10 +39,7 @@ int main() {
bar3.show_remaining_time();
bar3.set_prefix_text("Progress Bar #3 ");
- indicators::MultiProgress bars;
- bars.insert<0>(bar1);
- bars.insert<1>(bar2);
- bars.insert<2>(bar3);
+ indicators::MultiProgress bars(bar1, bar2, bar3);
std::cout << "Multiple Progress Bars:\n";
From 72644e513415a0c82dddc062d25dc29d3aad3c32 Mon Sep 17 00:00:00 2001
From: Pranav Srinivas Kumar
Date: Wed, 18 Dec 2019 11:55:56 -0600
Subject: [PATCH 2/5] Setting multiprogress mode in MultiProgress constructor
---
include/indicators/multi_progress.hpp | 3 +++
1 file changed, 3 insertions(+)
diff --git a/include/indicators/multi_progress.hpp b/include/indicators/multi_progress.hpp
index c643133..12e506b 100644
--- a/include/indicators/multi_progress.hpp
+++ b/include/indicators/multi_progress.hpp
@@ -42,6 +42,9 @@ public:
>
explicit MultiProgress(Indicators&... bars) {
_bars = {bars...};
+ for (auto& bar: _bars) {
+ bar.get()._multi_progress_mode = true;
+ }
}
template
From 8190a1e513c9b153d2a448568c5259fd599da28a Mon Sep 17 00:00:00 2001
From: Pranav Srinivas Kumar
Date: Wed, 18 Dec 2019 11:57:07 -0600
Subject: [PATCH 3/5] Minor update
---
include/indicators/multi_progress.hpp | 17 +++++------------
1 file changed, 5 insertions(+), 12 deletions(-)
diff --git a/include/indicators/multi_progress.hpp b/include/indicators/multi_progress.hpp
index 12e506b..8121ee9 100644
--- a/include/indicators/multi_progress.hpp
+++ b/include/indicators/multi_progress.hpp
@@ -49,26 +49,19 @@ public:
template
typename std::enable_if<(index >=0 && index < count), void>::type set_progress(float value) {
- {
- std::unique_lock lock{_mutex};
- if (!_bars[index].get().is_completed())
- _bars[index].get().set_progress(value);
- }
+ if (!_bars[index].get().is_completed())
+ _bars[index].get().set_progress(value);
_print_progress();
}
template typename std::enable_if<(index >=0 && index < count), void>::type tick() {
- {
- std::unique_lock lock{_mutex};
- if (!_bars[index].get().is_completed())
- _bars[index].get().tick();
- }
+ if (!_bars[index].get().is_completed())
+ _bars[index].get().tick();
_print_progress();
}
template
- typename std::enable_if<(index >=0 && index < count), bool>::type is_completed() {
- std::unique_lock lock{_mutex};
+ typename std::enable_if<(index >=0 && index < count), bool>::type is_completed() const {
return _bars[index].get().is_completed();
}
From 502ce33af489e7641a8e23171e71a775b1731fae Mon Sep 17 00:00:00 2001
From: Pranav Srinivas Kumar
Date: Wed, 18 Dec 2019 11:57:50 -0600
Subject: [PATCH 4/5] Updated README w/ new MultiProgress API
---
README.md | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)
diff --git a/README.md b/README.md
index a0618eb..46bcf71 100644
--- a/README.md
+++ b/README.md
@@ -295,10 +295,7 @@ int main() {
bar3.set_prefix_text("Progress Bar #3 ");
// Construct MultiProgress object
- indicators::MultiProgress bars;
- bars.insert<0>(bar1);
- bars.insert<1>(bar2);
- bars.insert<2>(bar3);
+ indicators::MultiProgress bars(bar1, bar2, bar3);
std::cout << "Multiple Progress Bars:\n";
From 9786633eba5a5c779eec1421c2ffc1bc2c8c9529 Mon Sep 17 00:00:00 2001
From: Pranav Srinivas Kumar
Date: Wed, 18 Dec 2019 11:59:20 -0600
Subject: [PATCH 5/5] Bumped version
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 46bcf71..d6548cf 100644
--- a/README.md
+++ b/README.md
@@ -9,7 +9,7 @@
-
+