LeechCraft
0.6.70-10870-g558588d6ec
Modular cross-platform feature rich live environment.
downloadhandler.h
Go to the documentation of this file.
1
/**********************************************************************
2
* LeechCraft - modular cross-platform feature rich internet client.
3
* Copyright (C) 2006-2014 Georg Rudoy
4
*
5
* Boost Software License - Version 1.0 - August 17th, 2003
6
*
7
* Permission is hereby granted, free of charge, to any person or organization
8
* obtaining a copy of the software and accompanying documentation covered by
9
* this license (the "Software") to use, reproduce, display, distribute,
10
* execute, and transmit the Software, and to prepare derivative works of the
11
* Software, and to permit third-parties to whom the Software is furnished to
12
* do so, all subject to the following:
13
*
14
* The copyright notices in the Software and this entire statement, including
15
* the above license grant, this restriction and the following disclaimer,
16
* must be included in all copies of the Software, in whole or in part, and
17
* all derivative works of the Software, unless such copies or derivative
18
* works are solely in the form of machine-executable object code generated by
19
* a source language processor.
20
*
21
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
22
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
23
* FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
24
* SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
25
* FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
26
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
27
* DEALINGS IN THE SOFTWARE.
28
**********************************************************************/
29
30
#pragma once
31
32
#include <QObject>
33
#include <
util/sll/eithercont.h
>
34
#include <
interfaces/idownload.h
>
35
#include <
interfaces/structures.h
>
36
#include "
xpcconfig.h
"
37
38
class
IEntityManager
;
39
40
namespace
LeechCraft
41
{
42
namespace
Util
43
{
44
class
UTIL_XPC_API
DownloadHandler
:
public
QObject
45
{
46
Q_OBJECT
47
48
const
Entity
E_;
49
const
EitherCont<void (IDownload::Error), void ()>
Cont_;
50
51
int
JobId_ = -1;
52
public
:
53
using
DataHandler_t
=
EitherCont<void (IDownload::Error), void (QByteArray)>
;
54
using
EntityHandler_t
=
EitherCont<void (IDownload::Error), void ()>
;
55
56
DownloadHandler
(
const
QUrl& url,
57
const
QVariantMap& additional,
58
IEntityManager
*iem,
59
const
DataHandler_t
&,
60
QObject *parent =
nullptr
);
61
62
DownloadHandler
(
const
QUrl& url,
63
IEntityManager
*iem,
64
const
DataHandler_t
&,
65
QObject *parent =
nullptr
);
66
67
DownloadHandler
(
const
Entity
& e,
68
IEntityManager
*iem,
69
const
EntityHandler_t
&,
70
QObject *parent =
nullptr
);
71
private
slots:
72
void
handleFinished (
int
);
73
void
handleError (
int
,
IDownload::Error
);
74
};
75
}
76
}
IEntityManager
Proxy to core entity manager.
Definition:
ientitymanager.h:49
eithercont.h
xpcconfig.h
structures.h
LeechCraft
Definition:
constants.h:35
idownload.h
LeechCraft::Util::EitherCont< void(IDownload::Error), void()>
LeechCraft::Util::DownloadHandler
Definition:
downloadhandler.h:44
IDownload::Error
Error
Definition:
idownload.h:65
LeechCraft::Entity
A message used for inter-plugin communication.
Definition:
structures.h:119
UTIL_XPC_API
#define UTIL_XPC_API
Definition:
xpcconfig.h:37
src
util
xpc
downloadhandler.h
Generated by
1.8.14