Nix 2.93.3
Lix: A modern, delicious implementation of the Nix package manager; unstable internal interfaces
Loading...
Searching...
No Matches
nix::curlFileTransfer::TransferSource Struct Reference
Inheritance diagram for nix::curlFileTransfer::TransferSource:
nix::Source

Public Member Functions

 TransferSource (curlFileTransfer &parent, const std::string &uri, const Headers &headers, std::optional< std::string > data, bool noBody)
auto withRetries (auto &&initial, auto &&retry) -> decltype(initial())
FileTransferResult startTransfer (const std::string &uri, curl_off_t offset=0)
void throwChangedTarget (std::string_view what, std::string_view from, std::string_view to)
void prepareRetry (const std::string &context)
void restartTransfer ()
bool awaitData ()
size_t read (char *data, size_t len) override
Public Member Functions inherited from nix::Source
void operator() (char *data, size_t len)
virtual bool good ()
void drainInto (Sink &sink)
std::string drain ()

Public Attributes

curlFileTransfer & parent
std::string uri
Headers headers
std::optional< std::string > data
bool noBody
ActivityId parentAct = getCurActivity()
std::shared_ptr< TransferItemtransfer
FileTransferResult metadata
std::string chunk
std::string_view buffered
unsigned int attempt = 0
const size_t tries = fileTransferSettings.tries
curl_off_t totalReceived = 0

Member Function Documentation

◆ read()

size_t nix::curlFileTransfer::TransferSource::read ( char * data,
size_t len )
inlineoverridevirtual

Store up to ‘len’ in the buffer pointed to by ‘data’, and return the number of bytes stored. It blocks until at least one byte is available.

Should not return 0 (generally you want to throw EndOfFile), but nothing stops that.

Exceptions
EndOfFileif there is no more data.

Implements nix::Source.


The documentation for this struct was generated from the following file:
  • lix/libstore/filetransfer.cc