Transfer Ease
Loading...
Searching...
No Matches
transfermanager.h
1#ifndef TEASE_TRANSFERMANAGER_H
2#define TEASE_TRANSFERMANAGER_H
3
4#include "transferease_global.h"
5#include "net/request.h"
6#include "tools/enumflag.h"
7
8#include <functional>
9
10/*****************************/
11/* Namespace instructions */
12/*****************************/
13namespace tease
14{
15
16/*****************************/
17/* Class definitions */
18/*****************************/
19class TEASE_EXPORT TransferManager
20{
21 TEASE_DISABLE_COPY_MOVE(TransferManager)
22
23public:
44
51 enum FlagOption : std::uint32_t
52 {
53 OPT_NONE = 0,
55 OPT_VERBOSE = 1 << 0,
56 OPT_FTP_CREATE_DIRS = 1 << 1
57 };
58
59public:
60 using CbStarted = std::function<void(Request::TypeTransfer typeTransfer)>;
61 using CbProgress = std::function<void(Request::TypeTransfer typeTransfer, size_t transferTotal, size_t transferNow)>;
62 using CbCompleted = std::function<void(Request::TypeTransfer typeTransfer)>;
63 using CbFailed = std::function<void(Request::TypeTransfer typeTransfer, IdError idErr)>;
64
65public:
67 virtual ~TransferManager();
68
69public:
70 IdError startDownload(const Request::List &listReqs);
71 IdError startUpload(const Request::List &listReqs);
72 void abortTransfer();
73 bool transferIsInProgress() const;
74
75 const std::string& getUserLogin() const;
76 const std::string& getUserPasswd() const;
77 int getNbMaxTrials() const;
78 long getTimeoutConnection() const;
79 long getTimeoutTransfer() const;
80 FlagOption getOptions() const;
81
82public:
83 void setUserInfos(const std::string &username, const std::string &passwd);
84 void setNbMaxTrials(int nbTrials);
85 void setTimeoutConnection(long timeout);
86 void setTimeoutTransfer(long timeout);
87 void setOptions(FlagOption options);
88
89public:
90 void setCbStarted(CbStarted fct);
91 void setCbProgress(CbProgress fct);
92 void setCbCompleted(CbCompleted fct);
93 void setCbFailed(CbFailed fct);
94
95public:
96 static double transferProgressToPercent(size_t transferTotal, size_t transferNow);
97
98 static std::string flagOptionToStr(FlagOption options, char separator = '|');
99 static const std::string &idErrorToStr(IdError idErr);
100
101private:
102 class Impl;
103 std::unique_ptr<Impl> d_ptr;
104};
105
106/*****************************/
107/* End namespaces */
108/*****************************/
109
110} // namespace tease
111
112/*****************************/
113/* Enable flag enum options */
114/*****************************/
115
120template<>
121struct tease_enable_flags<tease::TransferManager::FlagOption>{
122 static constexpr bool enable = true;
123};
124
129/*****************************/
130/* End file */
131/*****************************/
132
133#endif // TEASE_TRANSFERMANAGER_H
TypeTransfer
List of types of transfers.
Definition request.h:19
std::vector< PtrShared > List
Definition request.h:28
Use to perform download/upload of ressources easily.
Definition transfermanager.h:20
FlagOption
List of available options.
Definition transfermanager.h:52
std::function< void(Request::TypeTransfer typeTransfer, size_t transferTotal, size_t transferNow)> CbProgress
Callback called during transfer.
Definition transfermanager.h:61
std::function< void(Request::TypeTransfer typeTransfer, IdError idErr)> CbFailed
Callback called when transfer finished due to an error.
Definition transfermanager.h:63
IdError
List of errors identifiers.
Definition transfermanager.h:28
@ ERR_BUSY
Definition transfermanager.h:35
@ ERR_HOST_REFUSED
Definition transfermanager.h:41
@ ERR_INVALID_SSL
Definition transfermanager.h:34
@ ERR_MEMORY_FULL_REMOTE
Definition transfermanager.h:39
@ ERR_HOST_NOT_FOUND
Definition transfermanager.h:40
@ ERR_INTERNAL
Definition transfermanager.h:31
@ ERR_USER_ABORT
Definition transfermanager.h:36
@ ERR_MAX_TRIALS
Definition transfermanager.h:37
@ ERR_INVALID_LOGIN
Definition transfermanager.h:32
@ ERR_MEMORY_FULL_HOST
Definition transfermanager.h:38
@ ERR_INVALID_REQUEST
Definition transfermanager.h:33
std::function< void(Request::TypeTransfer typeTransfer)> CbCompleted
Callback called when transfer finished and succeed.
Definition transfermanager.h:62
std::function< void(Request::TypeTransfer typeTransfer)> CbStarted
Callback called when transfer has been started.
Definition transfermanager.h:60