libzypp 17.37.17
zyppng::ZckLoader Class Reference

#include <zypp-curl/ng/network/zckhelper.h>

Inheritance diagram for zyppng::ZckLoader:

Classes

struct  PrepareResult

Public Types

enum  State {
  Initial , DownloadLead , DownloadHeader , DownloadChunks ,
  Finished
}
using Block = RangeDesc
Public Types inherited from zyppng::Base
using Ptr = std::shared_ptr<Base>
using WeakPtr = std::weak_ptr<Base>

Public Member Functions

expected< void > buildZchunkFile (const zypp::Pathname &target, const zypp::Pathname &delta, const std::optional< zypp::ByteCount > &expectedFileSize, const std::optional< zypp::ByteCount > &zcKHeaderSize)
expected< void > cont ()
void setFailed (const std::string &msg)
SignalProxy< void(const std::vector< Block > &)> sigBlocksRequired ()
 Signal to notify the caller about required blocks, once the blocks are downloaded call cont to continue with the process.
SignalProxy< void(PrepareResult)> sigFinished ()
 Called once the zchunk build process is finished, either with error or success.
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 minZchunkDownloadSize ()
 The minimum size to download to have enough data to know the full header size.
static bool isZchunkFile (const zypp::Pathname &file)
static PrepareResult prepareZck (const zypp::Pathname &delta, const zypp::Pathname &target, const zypp::ByteCount &expectedFileSize)
static bool validateZckFile (const zypp::Pathname &file, std::string &error)
Static Public Member Functions inherited from zyppng::Base
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)

Private Attributes

State _state = Initial
zypp::AutoDispose< zckCtx * > _zchunkContext
zypp::AutoFD _targetFd
zypp::ByteCount _bytesReused = 0
zypp::Pathname _target
zypp::Pathname _delta
std::optional< zypp::ByteCount_expectedFileSize
std::optional< zypp::ByteCount_zcKHeaderSize
Signal< void(const std::vector< Block > &)> _sigBlocksRequired
Signal< void(PrepareResult)> _sigFinished

Additional Inherited Members

Protected Member Functions inherited from zyppng::Base
 Base (BasePrivate &dd)
Protected Attributes inherited from zyppng::Base
std::unique_ptr< BasePrivated_ptr

Detailed Description

Definition at line 36 of file zckhelper.h.

Member Typedef Documentation

◆ Block

Definition at line 47 of file zckhelper.h.

Member Enumeration Documentation

◆ State

Enumerator
Initial 
DownloadLead 
DownloadHeader 
DownloadChunks 
Finished 

Definition at line 39 of file zckhelper.h.

Member Function Documentation

◆ buildZchunkFile()

expected< void > zyppng::ZckLoader::buildZchunkFile ( const zypp::Pathname & target,
const zypp::Pathname & delta,
const std::optional< zypp::ByteCount > & expectedFileSize,
const std::optional< zypp::ByteCount > & zcKHeaderSize )

This function kickstarts the build process. The sigBlocksRequired and sigFinished signals need to be connected in order to download required blocks or get the finished event.

Definition at line 27 of file zckhelper.cc.

◆ cont()

expected< void > zyppng::ZckLoader::cont ( )

Advances the statemachine after sigBlocksRequired was triggered and blocks have been downloaded into the targetFile

Definition at line 69 of file zckhelper.cc.

◆ setFailed()

void zyppng::ZckLoader::setFailed ( const std::string & msg)

Advances the statemanchine into the failed state and emits sigFinished

Definition at line 279 of file zckhelper.cc.

◆ sigBlocksRequired()

SignalProxy< void(const std::vector< ZckLoader::Block > &)> zyppng::ZckLoader::sigBlocksRequired ( )

Signal to notify the caller about required blocks, once the blocks are downloaded call cont to continue with the process.

Definition at line 294 of file zckhelper.cc.

◆ sigFinished()

SignalProxy< void(ZckLoader::PrepareResult)> zyppng::ZckLoader::sigFinished ( )

Called once the zchunk build process is finished, either with error or success.

Definition at line 299 of file zckhelper.cc.

◆ minZchunkDownloadSize()

zypp::ByteCount zyppng::ZckLoader::minZchunkDownloadSize ( )
static

The minimum size to download to have enough data to know the full header size.

Definition at line 304 of file zckhelper.cc.

◆ isZchunkFile()

bool zyppng::ZckLoader::isZchunkFile ( const zypp::Pathname & file)
static

Checks if a given file is a zck file

Definition at line 309 of file zckhelper.cc.

◆ prepareZck()

ZckLoader::PrepareResult zyppng::ZckLoader::prepareZck ( const zypp::Pathname & delta,
const zypp::Pathname & target,
const zypp::ByteCount & expectedFileSize )
static

Prepares the file in target with already existing chunks in delta. The target file must already contain the zck header data of the to be downloaded file.

Definition at line 322 of file zckhelper.cc.

◆ validateZckFile()

bool zyppng::ZckLoader::validateZckFile ( const zypp::Pathname & file,
std::string & error )
static

Checks if a given zck file is internally valid

Definition at line 457 of file zckhelper.cc.

Member Data Documentation

◆ _state

State zyppng::ZckLoader::_state = Initial
private

Definition at line 116 of file zckhelper.h.

◆ _zchunkContext

zypp::AutoDispose<zckCtx *> zyppng::ZckLoader::_zchunkContext
private

Definition at line 117 of file zckhelper.h.

◆ _targetFd

zypp::AutoFD zyppng::ZckLoader::_targetFd
private

Definition at line 118 of file zckhelper.h.

◆ _bytesReused

zypp::ByteCount zyppng::ZckLoader::_bytesReused = 0
private

Definition at line 119 of file zckhelper.h.

◆ _target

zypp::Pathname zyppng::ZckLoader::_target
private

Definition at line 121 of file zckhelper.h.

◆ _delta

zypp::Pathname zyppng::ZckLoader::_delta
private

Definition at line 122 of file zckhelper.h.

◆ _expectedFileSize

std::optional<zypp::ByteCount> zyppng::ZckLoader::_expectedFileSize
private

Definition at line 123 of file zckhelper.h.

◆ _zcKHeaderSize

std::optional<zypp::ByteCount> zyppng::ZckLoader::_zcKHeaderSize
private

Definition at line 124 of file zckhelper.h.

◆ _sigBlocksRequired

Signal<void(const std::vector<Block> &)> zyppng::ZckLoader::_sigBlocksRequired
private

Definition at line 126 of file zckhelper.h.

◆ _sigFinished

Signal<void( PrepareResult )> zyppng::ZckLoader::_sigFinished
private

Definition at line 127 of file zckhelper.h.


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