libzypp 17.34.0
zyppng::RangeDownloaderBaseState Struct Reference

#include <zypp-curl/ng/network/private/downloaderstates/rangedownloader_p.h>

Inheritance diagram for zyppng::RangeDownloaderBaseState:

Public Types

using Request = DownloadPrivateBase::Request
 
using Block = DownloadPrivateBase::Block
 
- Public Types inherited from zyppng::MirrorHandlingStateBase
enum  PrepareResult { Failed , Ok , Delayed }
 
- Public Types inherited from zyppng::Base
using Ptr = std::shared_ptr<Base>
 
using WeakPtr = std::weak_ptr<Base>
 

Public Member Functions

 RangeDownloaderBaseState (std::vector< Url > &&mirrors, DownloadPrivate &parent)
 
void ensureDownloadsRunning ()
 
void reschedule ()
 
const NetworkRequestErrorerror () const
 
void setFailed (NetworkRequestError &&err)
 
void setFailed (std::string &&reason)
 
virtual void setFinished ()
 
void cancelAll (const NetworkRequestError &err)
 
void onRequestStarted (NetworkRequest &)
 
void onRequestProgress (NetworkRequest &, off_t, off_t, off_t, off_t)
 
void onRequestFinished (NetworkRequest &req, const NetworkRequestError &err)
 
void mirrorReceived (MirrorControl::MirrorPick mirror) override
 
void failedToPrepare () override
 
- Public Member Functions inherited from zyppng::MirrorHandlingStateBase
 MirrorHandlingStateBase (DownloadPrivate &parent)
 
 ~MirrorHandlingStateBase () override
 
PrepareResult prepareNextMirror ()
 
NetworkRequestError setupMirror (const MirrorControl::MirrorPick &pick, Url &url, TransferSettings &set)
 
- Public Member Functions inherited from zyppng::BasicState< DownloadPrivate, false >
 BasicState (DownloadPrivate &sm)
 
 BasicState (BasicState &&) noexcept=default
 
 ~BasicState () override
 
BasicStateoperator= (BasicState &&) noexcept=default
 
DownloadPrivatestateMachine ()
 
const DownloadPrivatestateMachine () const
 
- Public Member Functions inherited from zyppng::Base
 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 >, connectionconnectFunc (SenderFunc &&sFun, ReceiverFunc &&rFunc, const Tracker &...trackers)
 

Static Public Member Functions

static zypp::ByteCount makeBlksize (size_t filesize)
 
- Static Public Member Functions inherited from zyppng::Base
template<typename Obj , typename Functor >
static decltype(automake_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)
 

Protected Attributes

NetworkRequestError _error
 
bool _inEnsureDownloadsRunning = false
 
size_t _fileSize = 0
 
zypp::ByteCount _preferredChunkSize = 0
 
std::list< Block_ranges
 
std::list< Block_failedRanges
 
off_t _downloadedMultiByteCount = 0
 
std::vector< std::shared_ptr< Request > > _runningRequests
 
Signal< void() > _sigFinished
 
Signal< void() > _sigFailed
 
- Protected Attributes inherited from zyppng::Base
std::unique_ptr< BasePrivated_ptr
 

Private Member Functions

void handleRequestError (std::shared_ptr< Request > req, const zyppng::NetworkRequestError &err)
 
bool addBlockRanges (const std::shared_ptr< Request > &req, const std::vector< Block > &blocks) const
 Just initialize the requests ranges from the internal blocklist.
 
void addNewRequest (const std::shared_ptr< Request > &req, const bool connectSignals=true)
 
bool assertExpectedFilesize (off_t currentFilesize)
 
std::vector< BlockgetNextBlocks (const std::string &urlScheme)
 
std::vector< BlockgetNextFailedBlocks (const std::string &urlScheme)
 

Additional Inherited Members

- Public Attributes inherited from zyppng::MirrorHandlingStateBase
std::vector< Url_fileMirrors
 
- Static Public Attributes inherited from zyppng::BasicState< DownloadPrivate, false >
static constexpr bool isFinal
 
- Protected Member Functions inherited from zyppng::Base
 Base (BasePrivate &dd)
 

Detailed Description

Generic state implementation for all states that download a file in blocks from a fixed set of mirrors.

Definition at line 27 of file rangedownloader_p.h.

Member Typedef Documentation

◆ Request

◆ Block

Constructor & Destructor Documentation

◆ RangeDownloaderBaseState()

zyppng::RangeDownloaderBaseState::RangeDownloaderBaseState ( std::vector< Url > && mirrors,
DownloadPrivate & parent )
inline

Definition at line 32 of file rangedownloader_p.h.

Member Function Documentation

◆ ensureDownloadsRunning()

void zyppng::RangeDownloaderBaseState::ensureDownloadsRunning ( )

Definition at line 164 of file rangedownloader_p.cc.

◆ reschedule()

void zyppng::RangeDownloaderBaseState::reschedule ( )

Definition at line 274 of file rangedownloader_p.cc.

◆ error()

const NetworkRequestError & zyppng::RangeDownloaderBaseState::error ( ) const
inline

Definition at line 40 of file rangedownloader_p.h.

◆ setFailed() [1/2]

void zyppng::RangeDownloaderBaseState::setFailed ( NetworkRequestError && err)

Definition at line 336 of file rangedownloader_p.cc.

◆ setFailed() [2/2]

void zyppng::RangeDownloaderBaseState::setFailed ( std::string && reason)

Definition at line 344 of file rangedownloader_p.cc.

◆ setFinished()

void zyppng::RangeDownloaderBaseState::setFinished ( )
virtual

Reimplemented in zyppng::DlMetalinkState.

Definition at line 349 of file rangedownloader_p.cc.

◆ cancelAll()

void zyppng::RangeDownloaderBaseState::cancelAll ( const NetworkRequestError & err)

Definition at line 355 of file rangedownloader_p.cc.

◆ onRequestStarted()

void zyppng::RangeDownloaderBaseState::onRequestStarted ( NetworkRequest & )

Definition at line 21 of file rangedownloader_p.cc.

◆ onRequestProgress()

void zyppng::RangeDownloaderBaseState::onRequestProgress ( NetworkRequest & ,
off_t ,
off_t ,
off_t ,
off_t  )

Definition at line 24 of file rangedownloader_p.cc.

◆ onRequestFinished()

void zyppng::RangeDownloaderBaseState::onRequestFinished ( NetworkRequest & req,
const NetworkRequestError & err )

Definition at line 37 of file rangedownloader_p.cc.

◆ mirrorReceived()

void zyppng::RangeDownloaderBaseState::mirrorReceived ( MirrorControl::MirrorPick mirror)
overridevirtual

This is called once a mirror became ready, either directly if a mirror is ready or it was delayed and called asynchronously

Implements zyppng::MirrorHandlingStateBase.

Definition at line 209 of file rangedownloader_p.cc.

◆ failedToPrepare()

void zyppng::RangeDownloaderBaseState::failedToPrepare ( )
overridevirtual

Gets called in case a mirror failed to prepare, probably because none of the mirrors in _fileMirrors is known by MirrorControl

Reimplemented from zyppng::MirrorHandlingStateBase.

Definition at line 265 of file rangedownloader_p.cc.

◆ makeBlksize()

zypp::ByteCount zyppng::RangeDownloaderBaseState::makeBlksize ( size_t filesize)
static

Definition at line 431 of file rangedownloader_p.cc.

◆ handleRequestError()

void zyppng::RangeDownloaderBaseState::handleRequestError ( std::shared_ptr< Request > req,
const zyppng::NetworkRequestError & err )
private

Definition at line 107 of file rangedownloader_p.cc.

◆ addBlockRanges()

bool zyppng::RangeDownloaderBaseState::addBlockRanges ( const std::shared_ptr< Request > & req,
const std::vector< Block > & blocks ) const
private

Just initialize the requests ranges from the internal blocklist.

Definition at line 312 of file rangedownloader_p.cc.

◆ addNewRequest()

void zyppng::RangeDownloaderBaseState::addNewRequest ( const std::shared_ptr< Request > & req,
const bool connectSignals = true )
private

Definition at line 287 of file rangedownloader_p.cc.

◆ assertExpectedFilesize()

bool zyppng::RangeDownloaderBaseState::assertExpectedFilesize ( off_t currentFilesize)
private

Definition at line 299 of file rangedownloader_p.cc.

◆ getNextBlocks()

std::vector< RangeDownloaderBaseState::Block > zyppng::RangeDownloaderBaseState::getNextBlocks ( const std::string & urlScheme)
private

Definition at line 367 of file rangedownloader_p.cc.

◆ getNextFailedBlocks()

std::vector< RangeDownloaderBaseState::Block > zyppng::RangeDownloaderBaseState::getNextFailedBlocks ( const std::string & urlScheme)
private

Definition at line 395 of file rangedownloader_p.cc.

Member Data Documentation

◆ _error

NetworkRequestError zyppng::RangeDownloaderBaseState::_error
protected

Definition at line 60 of file rangedownloader_p.h.

◆ _inEnsureDownloadsRunning

bool zyppng::RangeDownloaderBaseState::_inEnsureDownloadsRunning = false
protected

Definition at line 61 of file rangedownloader_p.h.

◆ _fileSize

size_t zyppng::RangeDownloaderBaseState::_fileSize = 0
protected

Definition at line 63 of file rangedownloader_p.h.

◆ _preferredChunkSize

zypp::ByteCount zyppng::RangeDownloaderBaseState::_preferredChunkSize = 0
protected

Definition at line 64 of file rangedownloader_p.h.

◆ _ranges

std::list<Block> zyppng::RangeDownloaderBaseState::_ranges
protected

Definition at line 65 of file rangedownloader_p.h.

◆ _failedRanges

std::list<Block> zyppng::RangeDownloaderBaseState::_failedRanges
protected

Definition at line 69 of file rangedownloader_p.h.

◆ _downloadedMultiByteCount

off_t zyppng::RangeDownloaderBaseState::_downloadedMultiByteCount = 0
protected

Definition at line 71 of file rangedownloader_p.h.

◆ _runningRequests

std::vector< std::shared_ptr<Request> > zyppng::RangeDownloaderBaseState::_runningRequests
protected

Definition at line 73 of file rangedownloader_p.h.

◆ _sigFinished

Signal< void () > zyppng::RangeDownloaderBaseState::_sigFinished
protected

Definition at line 77 of file rangedownloader_p.h.

◆ _sigFailed

Signal< void () > zyppng::RangeDownloaderBaseState::_sigFailed
protected

Definition at line 78 of file rangedownloader_p.h.


The documentation for this struct was generated from the following files: