The CurlMultiPartHandler class.
More...
#include <zypp-curl/ng/network/curlmultiparthandler.h>
|
| | CurlMultiPartHandler (ProtocolMode mode, void *easyHandle, std::vector< Range > &ranges, CurlMultiPartDataReceiver &receiver) |
| |
| | ~CurlMultiPartHandler () override |
| |
| void * | easyHandle () const |
| |
| bool | canRecover () const |
| |
| bool | hasMoreWork () const |
| |
| bool | hasError () const |
| |
| Code | lastError () const |
| |
| const std::string & | lastErrorMessage () const |
| |
| bool | validateRange (Range &rng) |
| |
| bool | prepare () |
| |
| bool | prepareToContinue () |
| |
| void | finalize () |
| |
| bool | verifyData () |
| |
| std::optional< size_t > | reportedFileSize () const |
| |
| std::optional< off_t > | currentRange () const |
| |
| | Base () |
| |
| virtual | ~Base () |
| |
| WeakPtr | parent () const |
| |
| void | addChild (const Base::Ptr &child) |
| |
| void | removeChild (const Ptr &child) |
| |
| const std::unordered_set< Ptr > & | children () const |
| |
| std::thread::id | threadId () const |
| |
| template<typename T> |
| std::vector< std::weak_ptr< T > > | findChildren () const |
| |
| template<typename T> |
| std::shared_ptr< T > | shared_this () const |
| |
| template<typename T> |
| std::shared_ptr< T > | shared_this () |
| |
| template<typename T> |
| std::weak_ptr< T > | weak_this () const |
| |
| template<typename T> |
| std::weak_ptr< T > | weak_this () |
| |
| template<typename SenderFunc, typename ReceiverFunc> |
| auto | connect (SenderFunc &&sFun, typename internal::MemberFunction< ReceiverFunc >::ClassType &recv, ReceiverFunc &&rFunc) |
| |
| template<typename SenderFunc, typename ReceiverFunc, typename ... Tracker> |
| std::enable_if_t< std::is_member_function_pointer_v< SenderFunc >, connection > | connectFunc (SenderFunc &&sFun, ReceiverFunc &&rFunc, const Tracker &...trackers) |
| |
|
| void | setCode (Code c, std::string msg, bool force=false) |
| |
| size_t | hdrcallback (char *ptr, size_t size, size_t nmemb) |
| |
| size_t | wrtcallback (char *ptr, size_t size, size_t nmemb) |
| |
| bool | parseContentRangeHeader (const std::string_view &line, size_t &start, size_t &len, size_t &fileLen) |
| |
| bool | parseContentTypeMultiRangeHeader (const std::string_view &line, std::string &boundary) |
| |
| bool | checkIfRangeChkSumIsValid (Range &rng) |
| |
| void | setRangeState (Range &rng, State state) |
| |
|
| static size_t | curl_hdrcallback (char *ptr, size_t size, size_t nmemb, void *userdata) |
| |
| static size_t | curl_wrtcallback (char *ptr, size_t size, size_t nmemb, void *userdata) |
| |
|
| template<typename Obj, typename Functor> |
| static decltype(auto) | make_base_slot (Obj *o, Functor &&f) |
| |
| template<typename SenderFunc, typename ReceiverFunc> |
| static auto | connect (typename internal::MemberFunction< SenderFunc >::ClassType &s, SenderFunc &&sFun, typename internal::MemberFunction< ReceiverFunc >::ClassType &recv, ReceiverFunc &&rFunc) |
| |
| template<typename SenderFunc, typename ReceiverFunc, typename ... Tracker> |
| static auto | connectFunc (typename internal::MemberFunction< SenderFunc >::ClassType &s, SenderFunc &&sFun, ReceiverFunc &&rFunc, const Tracker &...trackers) |
| |
| | Base (BasePrivate &dd) |
| |
| std::unique_ptr< BasePrivate > | d_ptr |
| |
The CurlMultiPartHandler class.
multirange support for HTTP requests (https://tools.ietf.org/html/rfc7233), if not operating on a HTTP/HTTPS URL this will batch multirange requests one by one, so maybe don't use it there
Definition at line 69 of file curlmultiparthandler.h.
◆ CheckSumBytes
◆ Code
◆ ProtocolMode
◆ State
◆ CurlMultiPartHandler()
◆ ~CurlMultiPartHandler()
| zyppng::CurlMultiPartHandler::~CurlMultiPartHandler |
( |
| ) |
|
|
override |
◆ easyHandle()
| void * zyppng::CurlMultiPartHandler::easyHandle |
( |
| ) |
const |
◆ canRecover()
| bool zyppng::CurlMultiPartHandler::canRecover |
( |
| ) |
const |
◆ hasMoreWork()
| bool zyppng::CurlMultiPartHandler::hasMoreWork |
( |
| ) |
const |
◆ hasError()
| bool zyppng::CurlMultiPartHandler::hasError |
( |
| ) |
const |
◆ lastError()
◆ lastErrorMessage()
| const std::string & zyppng::CurlMultiPartHandler::lastErrorMessage |
( |
| ) |
const |
◆ validateRange()
| bool zyppng::CurlMultiPartHandler::validateRange |
( |
Range & | rng | ) |
|
◆ prepare()
| bool zyppng::CurlMultiPartHandler::prepare |
( |
| ) |
|
◆ prepareToContinue()
| bool zyppng::CurlMultiPartHandler::prepareToContinue |
( |
| ) |
|
◆ finalize()
| void zyppng::CurlMultiPartHandler::finalize |
( |
| ) |
|
◆ verifyData()
| bool zyppng::CurlMultiPartHandler::verifyData |
( |
| ) |
|
◆ reportedFileSize()
| std::optional< size_t > zyppng::CurlMultiPartHandler::reportedFileSize |
( |
| ) |
const |
◆ currentRange()
| std::optional< off_t > zyppng::CurlMultiPartHandler::currentRange |
( |
| ) |
const |
◆ setCode()
| void zyppng::CurlMultiPartHandler::setCode |
( |
Code | c, |
|
|
std::string | msg, |
|
|
bool | force = false ) |
|
private |
◆ curl_hdrcallback()
| size_t zyppng::CurlMultiPartHandler::curl_hdrcallback |
( |
char * | ptr, |
|
|
size_t | size, |
|
|
size_t | nmemb, |
|
|
void * | userdata ) |
|
staticprivate |
◆ curl_wrtcallback()
| size_t zyppng::CurlMultiPartHandler::curl_wrtcallback |
( |
char * | ptr, |
|
|
size_t | size, |
|
|
size_t | nmemb, |
|
|
void * | userdata ) |
|
staticprivate |
◆ hdrcallback()
| size_t zyppng::CurlMultiPartHandler::hdrcallback |
( |
char * | ptr, |
|
|
size_t | size, |
|
|
size_t | nmemb ) |
|
private |
◆ wrtcallback()
| size_t zyppng::CurlMultiPartHandler::wrtcallback |
( |
char * | ptr, |
|
|
size_t | size, |
|
|
size_t | nmemb ) |
|
private |
◆ parseContentRangeHeader()
| bool zyppng::CurlMultiPartHandler::parseContentRangeHeader |
( |
const std::string_view & | line, |
|
|
size_t & | start, |
|
|
size_t & | len, |
|
|
size_t & | fileLen ) |
|
private |
◆ parseContentTypeMultiRangeHeader()
| bool zyppng::CurlMultiPartHandler::parseContentTypeMultiRangeHeader |
( |
const std::string_view & | line, |
|
|
std::string & | boundary ) |
|
private |
◆ checkIfRangeChkSumIsValid()
| bool zyppng::CurlMultiPartHandler::checkIfRangeChkSumIsValid |
( |
Range & | rng | ) |
|
|
private |
◆ setRangeState()
| void zyppng::CurlMultiPartHandler::setRangeState |
( |
Range & | rng, |
|
|
State | state ) |
|
private |
◆ _rangeAttempt
| unsigned zyppng::CurlMultiPartHandler::_rangeAttempt[] |
|
staticconstexpr |
◆ _rangeAttemptSize
| unsigned zyppng::CurlMultiPartHandler::_rangeAttemptSize = ( sizeof( _rangeAttempt ) / sizeof(unsigned) ) |
|
staticconstexpr |
◆ _protocolMode
◆ _easyHandle
| void* zyppng::CurlMultiPartHandler::_easyHandle = nullptr |
|
private |
◆ _receiver
◆ _lastCode
| Code zyppng::CurlMultiPartHandler::_lastCode = Code::NoError |
|
private |
◆ _lastErrorMsg
| std::string zyppng::CurlMultiPartHandler::_lastErrorMsg |
|
private |
◆ _allHeadersReceived
| bool zyppng::CurlMultiPartHandler::_allHeadersReceived = false |
|
private |
◆ _gotContentRangeInfo
| bool zyppng::CurlMultiPartHandler::_gotContentRangeInfo = false |
|
private |
◆ _isMuliPartResponse
| bool zyppng::CurlMultiPartHandler::_isMuliPartResponse = false |
|
private |
◆ _seperatorString
| std::string zyppng::CurlMultiPartHandler::_seperatorString |
|
private |
The seperator string for multipart responses as defined in RFC 7233 Section 4.1.
Definition at line 174 of file curlmultiparthandler.h.
◆ _rangePrefaceBuffer
| std::vector<char> zyppng::CurlMultiPartHandler::_rangePrefaceBuffer |
|
private |
◆ _currentRange
| std::optional<off_t> zyppng::CurlMultiPartHandler::_currentRange |
|
private |
◆ _currentSrvRange
| std::optional<Range> zyppng::CurlMultiPartHandler::_currentSrvRange |
|
private |
◆ _reportedFileSize
| std::optional<size_t> zyppng::CurlMultiPartHandler::_reportedFileSize |
|
private |
◆ _rangeAttemptIdx
| unsigned zyppng::CurlMultiPartHandler::_rangeAttemptIdx = 0 |
|
private |
◆ _requestedRanges
| std::vector<Range>& zyppng::CurlMultiPartHandler::_requestedRanges |
|
private |
The documentation for this class was generated from the following files: