aboutsummaryrefslogtreecommitdiff
path: root/Src/Plugins/Library/ml_downloads/DownloadViewCallback.h
blob: 6ecce16bdfbbac88880713bbdb32c0cce193e489 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <atomic>

#include "Main.h"
#include "Downloaded.h"

#include "DownloadStatus.h"
#include "DownloadsDialog.h"
#include "api__ml_downloads.h"
#include "api/service/waServiceFactory.h"
#include "../../..\Components\wac_network\wac_network_http_receiver_api.h"


class DownloadViewCallback : public ifc_downloadManagerCallback
{
public:
	DownloadViewCallback();

	void   OnInit( DownloadToken token );
	void   OnConnect( DownloadToken token );
	void   OnData( DownloadToken token, void *data, size_t datalen );
	void   OnCancel( DownloadToken token );
	void   OnError( DownloadToken token, int error );
	void   OnFinish( DownloadToken token );

	size_t AddRef();
	size_t Release();

private: // private destructor so no one accidentally calls delete directly on this reference counted object
	~DownloadViewCallback();

protected:
	RECVS_DISPATCH;

private:
	std::atomic<std::size_t> _ref_count = 1;
};