summaryrefslogtreecommitdiff
path: root/src/SequentialPicker.h
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2016-04-15 23:54:10 +0900
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2016-04-15 23:54:10 +0900
commit2e0e8ed0e5722de51a30885d4a4f164deeb842a7 (patch)
tree261937fab924358a7a265155b13ccac65a771ad2 /src/SequentialPicker.h
parent302bdfd9a0d5b199f8dffa323b5b29fe7ca2745b (diff)
Amend
Diffstat (limited to 'src/SequentialPicker.h')
-rw-r--r--src/SequentialPicker.h17
1 files changed, 16 insertions, 1 deletions
diff --git a/src/SequentialPicker.h b/src/SequentialPicker.h
index c464be78..eb4489b0 100644
--- a/src/SequentialPicker.h
+++ b/src/SequentialPicker.h
@@ -43,7 +43,7 @@
namespace aria2 {
template <typename T> class SequentialPicker {
-protected:
+private:
std::deque<std::unique_ptr<T>> entries_;
std::unique_ptr<T> pickedEntry_;
@@ -72,6 +72,21 @@ public:
}
size_t countEntryInQueue() const { return entries_.size(); }
+
+ bool isPicked(const std::function<bool(const T&)>& pred) const
+ {
+ return pickedEntry_ && pred(*pickedEntry_);
+ }
+
+ bool isQueued(const std::function<bool(const T&)>& pred) const
+ {
+ for (auto& e : entries_) {
+ if (pred(*e)) {
+ return true;
+ }
+ }
+ return false;
+ }
};
} // namespace aria2