Nix 2.34.6
Nix, the purely functional package manager; unstable internal interfaces
Loading...
Searching...
No Matches
nix::curlFileTransfer::TransferItem Struct Reference
Inheritance diagram for nix::curlFileTransfer::TransferItem:

Public Member Functions

long getHTTPStatus ()
void appendHeaders (const std::string &header)
 TransferItem (curlFileTransfer &fileTransfer, const FileTransferRequest &request, Callback< FileTransferResult > &&callback)
void failEx (std::exception_ptr ex) noexcept
template<class T>
void fail (T &&e) noexcept
size_t writeCallback (void *contents, size_t size, size_t nmemb) noexcept
void appendCurrentUrl ()
size_t headerCallback (void *contents, size_t size, size_t nmemb) noexcept
Activity & act ()
int progressCallback (curl_off_t dltotal, curl_off_t dlnow) noexcept
size_t readCallback (char *buffer, size_t size, size_t nitems) noexcept
size_t seekCallback (curl_off_t offset, int origin) noexcept
void unpause ()
void init ()
void finish (CURLcode code)

Static Public Member Functions

static size_t writeCallbackWrapper (void *contents, size_t size, size_t nmemb, void *userp)
static size_t headerCallbackWrapper (void *contents, size_t size, size_t nmemb, void *userp)
static int progressCallbackWrapper (void *userp, curl_off_t dltotal, curl_off_t dlnow, curl_off_t ultotal, curl_off_t ulnow)
static int debugCallback (CURL *handle, curl_infotype type, char *data, size_t size, void *userptr) noexcept
static size_t readCallbackWrapper (char *buffer, size_t size, size_t nitems, void *userp) noexcept
static int cloexec_callback (void *, curl_socket_t curlfd, curlsocktype purpose)
static size_t seekCallbackWrapper (void *clientp, curl_off_t offset, int origin) noexcept
static int resolverCallbackWrapper (void *, void *, void *clientp) noexcept

Public Attributes

curlFileTransfer & fileTransfer
FileTransferRequest request
FileTransferResult result
std::unique_ptr< Activity > _act
Callback< FileTransferResult > callback
CURL * req = 0
char errbuf [CURL_ERROR_SIZE]
std::string statusMsg
unsigned int attempt = 0
std::chrono::steady_clock::time_point embargo
curlSList requestHeaders
bool done:1 = false
bool active:1 = false
bool paused:1 = false
bool enqueued:1 = false
bool acceptRanges:1 = false
bool hasContentEncoding:1 = false
curl_off_t writtenToSink = 0
std::chrono::steady_clock::time_point startTime = std::chrono::steady_clock::now()
LambdaSink finalSink
std::optional< StringSink > errorSink
std::exception_ptr callbackException

Static Public Attributes

static const std::set< long > successfulStatuses {200, 201, 204, 206, 304, 0 }

Member Function Documentation

◆ act()

Activity & nix::curlFileTransfer::TransferItem::act ( )
inline

Lazily start an Activity. We don't do this in the TransferItem constructor to avoid showing downloads that are only enqueued but not actually started.

Member Data Documentation

◆ acceptRanges

bool nix::curlFileTransfer::TransferItem::acceptRanges

Whether we can use range downloads for retries.

◆ active

bool nix::curlFileTransfer::TransferItem::active

Whether the handle has been added to the multi object.

◆ done

bool nix::curlFileTransfer::TransferItem::done

Whether either the success or failure function has been called.

◆ enqueued

bool nix::curlFileTransfer::TransferItem::enqueued

Whether the request has been added the incoming queue.

◆ hasContentEncoding

bool nix::curlFileTransfer::TransferItem::hasContentEncoding

Whether the response has a non-trivial (not "identity") Content-Encoding.

◆ paused

bool nix::curlFileTransfer::TransferItem::paused

Whether the request has been paused previously.


The documentation for this struct was generated from the following file:
  • /builddir/build/BUILD/nix-2.34.6-build/nix-2.34.6/src/libstore/filetransfer.cc