libzypp
17.35.16
downloader_p.h
Go to the documentation of this file.
1
/*---------------------------------------------------------------------\
2
| ____ _ __ __ ___ |
3
| |__ / \ / / . \ . \ |
4
| / / \ V /| _/ _/ |
5
| / /__ | | | | | | |
6
| /_____||_| |_| |_| |
7
| |
8
----------------------------------------------------------------------/
9
*
10
* This file contains private API, this might break at any time between releases.
11
* You have been warned!
12
*
13
*/
14
#ifndef ZYPP_CURL_NG_NETWORK_PRIVATE_DOWNLOADER_P_H_INCLUDED
15
#define ZYPP_CURL_NG_NETWORK_PRIVATE_DOWNLOADER_P_H_INCLUDED
16
17
#include <
zypp-core/zyppng/base/statemachine.h
>
18
19
#include "
downloaderstates/base_p.h
"
20
#include "
downloaderstates/initial_p.h
"
21
#include "
downloaderstates/detectmeta_p.h
"
22
#include "
downloaderstates/metalinkinfo_p.h
"
23
#include "
downloaderstates/preparemulti_p.h
"
24
#include "
downloaderstates/metalink_p.h
"
25
#include "
downloaderstates/normal_p.h
"
26
#include "
downloaderstates/final_p.h
"
27
#if ENABLE_ZCHUNK_COMPRESSION
28
#include "
downloaderstates/zck_p.h
"
29
#endif
30
31
namespace
zyppng
{
32
46
template
<
typename
Derived>
47
using
DownloadStatemachine
=
Statemachine
< Derived,
Download::State
,
48
// Source State, State Change Event TargetState, Transition Condition, Transition operation
49
Transition< InitialState, &InitialState::sigTransitionToDetectMetalinkState, DetectMetalinkState >
,
50
Transition< InitialState, &InitialState::sigTransitionToDlMetaLinkInfoState, DlMetaLinkInfoState >
,
51
#if ENABLE_ZCHUNK_COMPRESSION
52
Transition< InitialState, &InitialState::sigTransitionToDLZckHeaderState, DLZckHeadState, DefaultStateCondition, &InitialState::toDLZckHeadState >
,
53
#endif
54
Transition< InitialState, &InitialState::sigTransitionToDlNormalFileState, DlNormalFileState >
,
55
56
Transition< DetectMetalinkState, &DetectMetalinkState::sigFinished, DlMetaLinkInfoState, &DetectMetalinkState::toMetalinkGuard, &DetectMetalinkState::toDlMetaLinkInfoState >
,
57
#if ENABLE_ZCHUNK_COMPRESSION
58
Transition< DetectMetalinkState, &DetectMetalinkState::sigFinished, DLZckHeadState, &DetectMetalinkState::toZckHeadDownloadGuard, &DetectMetalinkState::toDLZckHeadState >
,
59
#endif
60
Transition< DetectMetalinkState, &DetectMetalinkState::sigFinished, DlNormalFileState, &DetectMetalinkState::toSimpleDownloadGuard >
,
61
62
Transition< DlMetaLinkInfoState, &DlMetaLinkInfoState::sigFinished, FinishedState, DefaultStateCondition, &DlMetaLinkInfoState::transitionToFinished >
,
63
Transition< DlMetaLinkInfoState, &DlMetaLinkInfoState::sigGotMetadata, PrepareMultiState, DefaultStateCondition, &DlMetaLinkInfoState::transitionToPrepareMulti >
,
64
Transition< DlMetaLinkInfoState, &DlMetaLinkInfoState::sigFailed, FinishedState, DefaultStateCondition, &DlMetaLinkInfoState::transitionToFinished >
,
65
66
Transition< PrepareMultiState, &PrepareMultiState::sigFinished, DlMetalinkState, &PrepareMultiState::toMetalinkDownloadGuard , &PrepareMultiState::transitionToMetalinkDl >
,
67
#if ENABLE_ZCHUNK_COMPRESSION
68
Transition< PrepareMultiState, &PrepareMultiState::sigFinished, DLZckHeadState, &PrepareMultiState::toZckHeadDownloadGuard, &PrepareMultiState::transitionToZckHeadDl >
,
69
#endif
70
Transition< PrepareMultiState, &PrepareMultiState::sigFallback, DlNormalFileState, DefaultStateCondition, &PrepareMultiState::fallbackToNormalTransition >
,
71
Transition< PrepareMultiState, &PrepareMultiState::sigFailed, DlNormalFileState >
,
72
73
#if ENABLE_ZCHUNK_COMPRESSION
74
Transition< DLZckHeadState, &DLZckHeadState::sigFinished, DLZckState, DefaultStateCondition, &DLZckHeadState::transitionToDlZckState >
,
75
Transition< DLZckHeadState, &DLZckHeadState::sigFailed, DlNormalFileState >
,
76
77
Transition< DLZckState, &DLZckState::sigFinished, FinishedState, DefaultStateCondition, &DLZckState::transitionToFinished >
,
78
Transition< DLZckState, &DLZckState::sigFallback, DlNormalFileState >
,
79
#endif
80
81
Transition< DlMetalinkState, &DlMetalinkState::sigFinished, FinishedState, DefaultStateCondition, &DlMetalinkState::transitionToFinished >
,
82
Transition< DlMetalinkState, &DlMetalinkState::sigFailed, FinishedState, &DlMetalinkState::toFinalStateCondition, &DlMetalinkState::transitionToFinished >
,
83
Transition< DlMetalinkState, &DlMetalinkState::sigFailed, DlNormalFileState, &DlMetalinkState::toSimpleDownloadCondition >
,
84
85
Transition< DlNormalFileState, &DlNormalFileState::sigFinished, FinishedState, DefaultStateCondition, &DlNormalFileState::transitionToFinished >
,
86
Transition< DlNormalFileState, &DlNormalFileState::sigFailed, FinishedState, DefaultStateCondition, &DlNormalFileState::transitionToFinished >
87
>;
88
89
class
DownloadPrivate
:
public
DownloadPrivateBase
,
public
DownloadStatemachine
<DownloadPrivate>
90
{
91
public
:
92
DownloadPrivate
(
Downloader
&
parent
, std::shared_ptr<NetworkRequestDispatcher> requestDispatcher, std::shared_ptr<MirrorControl> mirrors,
DownloadSpec
&&spec,
Download
&p );
93
void
start
();
94
void
init
()
override
;
95
};
96
97
class
DownloaderPrivate
:
public
BasePrivate
98
{
99
ZYPP_DECLARE_PUBLIC
(
Downloader
)
100
public
:
101
DownloaderPrivate
( std::shared_ptr<MirrorControl> mc,
Downloader
&p );
102
103
std::vector< std::shared_ptr<Download> >
_runningDownloads
;
104
std::shared_ptr<NetworkRequestDispatcher>
_requestDispatcher
;
105
106
void
onDownloadStarted
(
Download
&download );
107
void
onDownloadFinished
(
Download
&download );
108
109
Signal
< void (
Downloader
&
parent
,
Download
& download )>
_sigStarted
;
110
Signal
< void (
Downloader
&
parent
,
Download
& download )>
_sigFinished
;
111
Signal
< void (
Downloader
&
parent
)>
_queueEmpty
;
112
std::shared_ptr<MirrorControl>
_mirrors
;
113
};
114
115
}
116
117
#endif
zyppng::BasePrivate
Definition
base_p.h:14
zyppng::BasePrivate::parent
Base::WeakPtr parent
Definition
base_p.h:22
zyppng::DownloadPrivateBase
Definition
base_p.h:41
zyppng::DownloadPrivate
Definition
downloader_p.h:90
zyppng::DownloadPrivate::start
void start()
Definition
downloader.cc:127
zyppng::DownloadPrivate::DownloadPrivate
DownloadPrivate(Downloader &parent, std::shared_ptr< NetworkRequestDispatcher > requestDispatcher, std::shared_ptr< MirrorControl > mirrors, DownloadSpec &&spec, Download &p)
Definition
downloader.cc:112
zyppng::DownloadPrivate::init
void init() override
Definition
downloader.cc:116
zyppng::DownloadSpec
Definition
downloadspec.h:38
zyppng::Download
Definition
downloader.h:127
zyppng::Download::State
State
Definition
downloader.h:139
zyppng::DownloaderPrivate
Definition
downloader_p.h:98
zyppng::DownloaderPrivate::_mirrors
std::shared_ptr< MirrorControl > _mirrors
Definition
downloader_p.h:112
zyppng::DownloaderPrivate::_sigStarted
Signal< void(Downloader &parent, Download &download)> _sigStarted
Definition
downloader_p.h:109
zyppng::DownloaderPrivate::_runningDownloads
std::vector< std::shared_ptr< Download > > _runningDownloads
Definition
downloader_p.h:103
zyppng::DownloaderPrivate::onDownloadFinished
void onDownloadFinished(Download &download)
Definition
downloader.cc:351
zyppng::DownloaderPrivate::_queueEmpty
Signal< void(Downloader &parent)> _queueEmpty
Definition
downloader_p.h:111
zyppng::DownloaderPrivate::_requestDispatcher
std::shared_ptr< NetworkRequestDispatcher > _requestDispatcher
Definition
downloader_p.h:104
zyppng::DownloaderPrivate::_sigFinished
Signal< void(Downloader &parent, Download &download)> _sigFinished
Definition
downloader_p.h:110
zyppng::DownloaderPrivate::onDownloadStarted
void onDownloadStarted(Download &download)
Definition
downloader.cc:346
zyppng::DownloaderPrivate::DownloaderPrivate
DownloaderPrivate(std::shared_ptr< MirrorControl > mc, Downloader &p)
Definition
downloader.cc:336
zyppng::Downloader
The Downloader class.
Definition
downloader.h:39
zyppng::Signal
Definition
signals.h:151
zyppng::Statemachine
This defines the actual StateMachine.
Definition
statemachine.h:364
detectmeta_p.h
final_p.h
initial_p.h
metalink_p.h
metalinkinfo_p.h
zyppng
Definition
MediaNetwork.h:23
normal_p.h
preparemulti_p.h
statemachine.h
zyppng::Transition
Definition
statemachine.h:237
zck_p.h
base_p.h
ZYPP_DECLARE_PUBLIC
#define ZYPP_DECLARE_PUBLIC(Class)
Definition
zyppglobal.h:98
zypp-curl
ng
network
private
downloader_p.h
Generated by
1.12.0