libstore: make BinaryCacheStore::getFile return a source

this lets us remove the last true remaining uses of
makeDecompressionSink.

Change-Id: I146ca2bbe1a9ae9a367117a7b8a304b23a63e5e2
This commit is contained in:
eldritch horrors
2024-07-11 11:39:18 +00:00
parent df8851f286
commit 5587dbdcf0
6 changed files with 22 additions and 15 deletions
+2 -2
View File
@@ -150,12 +150,12 @@ protected:
}
void getFile(const std::string & path, Sink & sink) override
box_ptr<Source> getFile(const std::string & path) override
{
checkEnabled();
auto request(makeRequest(path));
try {
getFileTransfer()->download(std::move(request))->drainInto(sink);
return getFileTransfer()->download(std::move(request));
} catch (FileTransferError & e) {
if (e.error == FileTransfer::NotFound || e.error == FileTransfer::Forbidden)
throw NoSuchBinaryCacheFile("file '%s' does not exist in binary cache '%s'", path, getUri());