summaryrefslogtreecommitdiff
path: root/src/FileEntry.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/FileEntry.h')
-rw-r--r--src/FileEntry.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/FileEntry.h b/src/FileEntry.h
index 3d9106e9..93137fb7 100644
--- a/src/FileEntry.h
+++ b/src/FileEntry.h
@@ -70,6 +70,8 @@ private:
std::deque<URIResult> _uriResults;
Logger* _logger;
+
+ void storePool(const SharedHandle<Request>& request);
public:
FileEntry();
@@ -158,6 +160,11 @@ public:
// and return the Request object.
SharedHandle<Request> getRequest(const SharedHandle<URISelector>& selector);
+ // Finds pooled Request object which is faster than passed one,
+ // comparing their PeerStat objects. If such Request is found, it is
+ // removed from the pool and returned.
+ SharedHandle<Request> findFasterRequest(const SharedHandle<Request>& base);
+
void poolRequest(const SharedHandle<Request>& request);
bool removeRequest(const SharedHandle<Request>& request);
@@ -167,6 +174,11 @@ public:
return _inFlightRequests.size();
}
+ size_t countPooledRequest() const
+ {
+ return _requestPool.size();
+ }
+
bool operator<(const FileEntry& fileEntry) const;
bool exists() const;