From e2e711fba8b888ba3ce8b9e89c10399dba6d134b Mon Sep 17 00:00:00 2001 From: Tatsuhiro Tsujikawa Date: Mon, 31 Oct 2011 21:53:24 +0900 Subject: Reuse in-flight and pooled URIs when a download is paused. --- src/FileEntry.cc | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'src/FileEntry.cc') diff --git a/src/FileEntry.cc b/src/FileEntry.cc index 7d04e2dd..23721e7a 100644 --- a/src/FileEntry.cc +++ b/src/FileEntry.cc @@ -452,6 +452,25 @@ void FileEntry::releaseRuntimeResource() inFlightRequests_.clear(); } +namespace { +template +void putBackUri +(std::deque& uris, + InputIterator first, + InputIterator last) +{ + for(; first != last; ++first) { + uris.push_front((*first)->getUri()); + } +} +} // namespace + +void FileEntry::putBackRequest() +{ + putBackUri(uris_, requestPool_.begin(), requestPool_.end()); + putBackUri(uris_, inFlightRequests_.begin(), inFlightRequests_.end()); +} + namespace { template InputIterator findRequestByUri -- cgit