diff options
author | Eelco Dolstra <edolstra@gmail.com> | 2022-01-17 22:20:05 +0100 |
---|---|---|
committer | Eelco Dolstra <edolstra@gmail.com> | 2022-01-18 11:12:30 +0100 |
commit | d62a9390fcdc0f9e4971e5fab2f667567237b252 (patch) | |
tree | cdbf6aef8b15b2ba5f02f7426ec2e5cd1f595e39 /src/libstore/http-binary-cache-store.cc | |
parent | 52ee7ec0028263f04e15c05256ca90fa62a0da66 (diff) |
Get rid of std::shared_ptr<std::string> and ref<std::string>
These were needed back in the pre-C++11 era because we didn't have
move semantics. But now we do.
Diffstat (limited to 'src/libstore/http-binary-cache-store.cc')
-rw-r--r-- | src/libstore/http-binary-cache-store.cc | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/libstore/http-binary-cache-store.cc b/src/libstore/http-binary-cache-store.cc index 605ec4b28..3cb5efdbf 100644 --- a/src/libstore/http-binary-cache-store.cc +++ b/src/libstore/http-binary-cache-store.cc @@ -126,7 +126,7 @@ protected: const std::string & mimeType) override { auto req = makeRequest(path); - req.data = std::make_shared<string>(StreamToSourceAdapter(istream).drain()); + req.data = StreamToSourceAdapter(istream).drain(); req.mimeType = mimeType; try { getFileTransfer()->upload(req); @@ -159,7 +159,7 @@ protected: } void getFile(const std::string & path, - Callback<std::shared_ptr<std::string>> callback) noexcept override + Callback<std::optional<std::string>> callback) noexcept override { checkEnabled(); @@ -170,10 +170,10 @@ protected: getFileTransfer()->enqueueFileTransfer(request, {[callbackPtr, this](std::future<FileTransferResult> result) { try { - (*callbackPtr)(result.get().data); + (*callbackPtr)(std::move(result.get().data)); } catch (FileTransferError & e) { if (e.error == FileTransfer::NotFound || e.error == FileTransfer::Forbidden) - return (*callbackPtr)(std::shared_ptr<std::string>()); + return (*callbackPtr)({}); maybeDisable(); callbackPtr->rethrow(); } catch (...) { |