summaryrefslogtreecommitdiffstats
path: root/src/net
diff options
context:
space:
mode:
authorSebastien Braun2010-08-04 17:24:21 +0200
committerSebastien Braun2010-08-04 17:24:21 +0200
commit88dbb997a823ff77f752ac08105d12474345dfcb (patch)
tree19ff443503d1501b4033658d2185ea0e6aca7e53 /src/net
parentForward MCASTFTANNOUNCE and MCASTFTRETRY messages in pvsmgr and pvsmgrtouch. (diff)
downloadpvs-88dbb997a823ff77f752ac08105d12474345dfcb.tar.gz
pvs-88dbb997a823ff77f752ac08105d12474345dfcb.tar.xz
pvs-88dbb997a823ff77f752ac08105d12474345dfcb.zip
Implement GUI for receiving incoming multicast transfers
Diffstat (limited to 'src/net')
-rw-r--r--src/net/pvsIncomingMulticastTransfer.cpp37
-rw-r--r--src/net/pvsIncomingMulticastTransfer.h6
2 files changed, 21 insertions, 22 deletions
diff --git a/src/net/pvsIncomingMulticastTransfer.cpp b/src/net/pvsIncomingMulticastTransfer.cpp
index 01507a9..10b5307 100644
--- a/src/net/pvsIncomingMulticastTransfer.cpp
+++ b/src/net/pvsIncomingMulticastTransfer.cpp
@@ -21,7 +21,7 @@
#include "pvsIncomingMulticastTransfer.h"
#include <src/net/mcast/McastReceiver.h>
-PVSIncomingMulticastTransfer::PVSIncomingMulticastTransfer(QString const& sender, qulonglong transferID, qulonglong size,
+PVSIncomingMulticastTransfer::PVSIncomingMulticastTransfer(QString const& sender, qulonglong transferID, qulonglong size, QString const& filename,
ushort port, McastConfiguration const* configTemplate, QObject* parent) :
QObject(parent),
_sender(sender),
@@ -29,19 +29,21 @@ PVSIncomingMulticastTransfer::PVSIncomingMulticastTransfer(QString const& sender
_bytes(0),
_size(size),
_port(port),
- _temporaryFile(new QTemporaryFile(QFileInfo(QDir::homePath(), "incoming.mcastft.XXXXXX").absolutePath(), this)),
- _finalFile(0),
+ _file(new QFile(filename, this)),
_receiver(0),
_config(configTemplate ?
new McastConfiguration(*configTemplate) :
new McastConfiguration()),
_progressTimer(new QTimer(this))
{
+ _file->open(QIODevice::WriteOnly);
+
_config->multicastUDPPortBase(port);
- _config->multicastDPort(port);
- _config->multicastSPort(port);
+ // _config->multicastDPort(port+1);
+ // _config->multicastSPort(port+2);
connect(_progressTimer, SIGNAL(timeout()), SLOT(updateProgress()));
+ connect(this, SIGNAL(failed(qulonglong, QString const&)), SLOT(removeFile()));
}
PVSIncomingMulticastTransfer::~PVSIncomingMulticastTransfer()
@@ -51,10 +53,10 @@ PVSIncomingMulticastTransfer::~PVSIncomingMulticastTransfer()
bool PVSIncomingMulticastTransfer::start()
{
- QFile *dest = _finalFile ? _finalFile : _temporaryFile;
- _receiver = new McastReceiver(dest, new McastConfiguration(*_config), this);
+ _file->open(QIODevice::WriteOnly);
+ _receiver = new McastReceiver(_file, new McastConfiguration(*_config), this);
connect(_receiver, SIGNAL(finished(int)), SLOT(receiverFinished(int)));
- connect(_receiver, SIGNAL(progress(quint64)), SLOT(receiverProgress(quint64)));
+ connect(_receiver, SIGNAL(progress(quint64)), SLOT(receiverProgressed(quint64)));
if (!_receiver->start())
{
@@ -76,17 +78,8 @@ void PVSIncomingMulticastTransfer::abort()
delete _progressTimer;
_progressTimer = 0;
- if (_temporaryFile)
- {
- _temporaryFile->remove();
- }
- delete _temporaryFile;
-
- if (_finalFile)
- {
- _finalFile->remove();
- }
- delete _finalFile;
+ if(_file)
+ delete _file;
}
void PVSIncomingMulticastTransfer::updatePort(ushort port)
@@ -124,6 +117,12 @@ void PVSIncomingMulticastTransfer::receiverFinished(int how)
}
}
+void PVSIncomingMulticastTransfer::removeFile()
+{
+ if(_file)
+ _file->remove();
+}
+
void PVSIncomingMulticastTransfer::updateProgress()
{
if (!_started)
diff --git a/src/net/pvsIncomingMulticastTransfer.h b/src/net/pvsIncomingMulticastTransfer.h
index 9a33348..f96e176 100644
--- a/src/net/pvsIncomingMulticastTransfer.h
+++ b/src/net/pvsIncomingMulticastTransfer.h
@@ -31,7 +31,7 @@ class PVSIncomingMulticastTransfer : public QObject
{
Q_OBJECT
public:
- PVSIncomingMulticastTransfer(QString const& sender, qulonglong transferID, qulonglong size, ushort port,
+ PVSIncomingMulticastTransfer(QString const& sender, qulonglong transferID, qulonglong size, QString const& filename, ushort port,
McastConfiguration const* configTemplate, QObject* parent = 0);
virtual ~PVSIncomingMulticastTransfer();
@@ -53,6 +53,7 @@ private slots:
void receiverProgressed(quint64 bytes);
void receiverFinished(int reason);
void updateProgress();
+ void removeFile();
private:
QString _sender;
@@ -60,8 +61,7 @@ private:
qulonglong _bytes;
qulonglong _size;
ushort _port;
- QFile* _temporaryFile;
- QFile* _finalFile;
+ QFile* _file;
McastReceiver* _receiver;
McastConfiguration* _config;
bool _started;