summaryrefslogtreecommitdiffstats
path: root/pica-client/filetransfercontroller.h
blob: 884428b1f965d5b93f63b39d5866be22d7be6798 (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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
/*
	(c) Copyright  2012 - 2018 Anton Sviridenko
	https://picapica.im

	This program is free software: you can redistribute it and/or modify
	it under the terms of the GNU General Public License as published by
	the Free Software Foundation, version 3.

	This program is distributed in the hope that it will be useful,
	but WITHOUT ANY WARRANTY; without even the implied warranty of
	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
	GNU General Public License for more details.

	You should have received a copy of the GNU General Public License
	along with this program.  If not, see <https://www.gnu.org/licenses/>.
*/
#ifndef FILETRANSFERCONTROLLER_H
#define FILETRANSFERCONTROLLER_H

#include <QObject>
#include <QMap>
#include "dialogs/filetransferdialog.h"

class FileTransferController : public QObject
{
	Q_OBJECT
public:
	explicit FileTransferController(QObject *parent = 0);

signals:

private:

	QMap<QByteArray, FileTransferDialog*> ftdialogs_in;
	QMap<QByteArray, FileTransferDialog*> ftdialogs_out;

	QMap<QByteArray, QString> fnames;


public slots:

	// from remote peer to me
	void file_progress(QByteArray peer_id, quint64 bytes_sent, quint64 bytes_received);
	void file_request(QByteArray peer_id, quint64 file_size, QString filename);
	void file_accepted_by_peer(QByteArray peer_id);
	void file_denied_by_peer(QByteArray peer_id);

	void file_paused_incoming(QByteArray peer_id);
	void file_resumed_incoming(QByteArray peer_id);
	void file_cancelled_incoming(QByteArray peer_id);
	void file_ioerror_incoming(QByteArray peer_id);

	void file_paused_outgoing(QByteArray peer_id);
	void file_resumed_outgoing(QByteArray peer_id);
	void file_cancelled_outgoing(QByteArray peer_id);
	void file_ioerror_outgoing(QByteArray peer_id);

	void file_finished_incoming(QByteArray peer_id);
	void file_peer_disconnected(QByteArray peer_id);

	//from me (file transfer dialog shown to user) to remote peer
	void file_accepted_by_me(QByteArray peer_id);
	void file_denied_by_me(QByteArray peer_id);
	void file_cancelled_by_me(QByteArray peer_id, FileTransferDialog *from);
	void file_paused_by_me(QByteArray peer_id, FileTransferDialog *from);
	void file_resumed_by_me(QByteArray peer_id, FileTransferDialog *from);

	void send_file(QByteArray peer_id);

	void file_finished_outgoing(QByteArray peer_id);

};

#endif // FILETRANSFERCONTROLLER_H