Transfer Ease
Loading...
Searching...
No Matches
request.h
1#ifndef TEASE_NET_REQUEST_H
2#define TEASE_NET_REQUEST_H
3
4#include "bytesarray.h"
5#include "url.h"
6
7namespace tease
8{
9
10class TEASE_EXPORT Request
11{
12 TEASE_DISABLE_COPY_MOVE(Request)
13
14public:
19 {
20 TRANSFER_UNK = 0,
23 TRANSFER_UPLOAD
24 };
25
26public:
27 using PtrShared = std::shared_ptr<Request>;
28 using List = std::vector<PtrShared>;
30public:
31 Request();
32 virtual ~Request();
33
34public:
35 void clear();
36
37 void configureDownload(const Url &targetUrl);
38
39 void configureUpload(const Url &dstUrl, const BytesArray &inputData);
40 void configureUpload(const Url &dstUrl, BytesArray &&inputData);
41
42public:
43 TypeTransfer getTypeTransfer() const;
44 const Url& getUrl() const;
45
46 BytesArray& getData();
47 const BytesArray& getData() const;
48
49public:
50 size_t ioRead(char *buffer, size_t nbBytes);
51
52 void ioSetSizeTotal(size_t size);
53 void ioSetSizeCurrent(size_t size);
54 void ioRegisterTry();
55 void ioAbort();
56 void ioReset();
57
58 size_t ioGetSizeTotal() const;
59 size_t ioGetSizeCurrent() const;
60 int ioGetNbTrials() const;
61 bool ioIsAbort() const;
62
63private:
64 class Impl;
65 std::unique_ptr<Impl> d_ptr;
66};
67
68} // namespace tease
69
70#endif // TEASE_NET_REQUEST_H
Allow to store an array of bytes.
Definition bytesarray.h:15
Manage a ressource request informations.
Definition request.h:11
TypeTransfer
List of types of transfers.
Definition request.h:19
@ TRANSFER_DOWNLOAD
Definition request.h:22
std::vector< PtrShared > List
Definition request.h:28
std::shared_ptr< Request > PtrShared
Definition request.h:27
Use to manage URLs.
Definition url.h:13