diff options
| author | Sebastien Braun | 2010-07-19 11:53:55 +0200 |
|---|---|---|
| committer | Sebastien Braun | 2010-07-19 11:53:55 +0200 |
| commit | 755f07b1a25c414b0c7cbe28db4a7ecbc32975c7 (patch) | |
| tree | a9dc99869865bc0f1f0b3e19c488459b3bc8a7fd /src/net/pvsIncomingMulticastTransfer.h | |
| parent | Remember to delete outgoing transfers when they are finished or failed (diff) | |
| download | pvs-755f07b1a25c414b0c7cbe28db4a7ecbc32975c7.tar.gz pvs-755f07b1a25c414b0c7cbe28db4a7ecbc32975c7.tar.xz pvs-755f07b1a25c414b0c7cbe28db4a7ecbc32975c7.zip | |
Implement initial multicast receive functionality in PVS daemon
Diffstat (limited to 'src/net/pvsIncomingMulticastTransfer.h')
| -rw-r--r-- | src/net/pvsIncomingMulticastTransfer.h | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/src/net/pvsIncomingMulticastTransfer.h b/src/net/pvsIncomingMulticastTransfer.h new file mode 100644 index 0000000..9a33348 --- /dev/null +++ b/src/net/pvsIncomingMulticastTransfer.h @@ -0,0 +1,71 @@ +/* +# Copyright (c) 2009 - OpenSLX Project, Computer Center University of Freiburg +# +# This program is free software distributed under the GPL version 2. +# See http://openslx.org/COPYING +# +# If you have any feedback please consult http://openslx.org/feedback and +# send your suggestions, praise, or complaints to feedback@openslx.org +# +# General information about OpenSLX can be found at http://openslx.org/ +# ----------------------------------------------------------------------------- +# src/net/pcsIncomingMulticastTransfer.h +# - wrap McastReceiver functionality in PVS daemon +# ----------------------------------------------------------------------------- +*/ + +#ifndef PVSINCOMINGMULTICASTTRANSFER_H_ +#define PVSINCOMINGMULTICASTTRANSFER_H_ + +#include <QObject> +#include <QString> + +#include <src/net/pvsMsg.h> + +class McastConfiguration; +class McastReceiver; +class QFile; +class QTimer; + +class PVSIncomingMulticastTransfer : public QObject +{ + Q_OBJECT +public: + PVSIncomingMulticastTransfer(QString const& sender, qulonglong transferID, qulonglong size, ushort port, + McastConfiguration const* configTemplate, QObject* parent = 0); + virtual ~PVSIncomingMulticastTransfer(); + + void setFinalFile(QString const& filename); + +signals: + void retry(QString const& sender, qulonglong transferID); + void started(qulonglong transferID); + void progress(qulonglong transferID, qulonglong bytes, qulonglong of); + void finished(qulonglong transferID); + void failed(qulonglong transferID, QString const& reason); + +public slots: + void updatePort(ushort port); + bool start(); + void abort(); + +private slots: + void receiverProgressed(quint64 bytes); + void receiverFinished(int reason); + void updateProgress(); + +private: + QString _sender; + qulonglong _transferID; + qulonglong _bytes; + qulonglong _size; + ushort _port; + QFile* _temporaryFile; + QFile* _finalFile; + McastReceiver* _receiver; + McastConfiguration* _config; + bool _started; + QTimer* _progressTimer; +}; + +#endif /* PVSINCOMINGMULTICASTTRANSFER_H_ */ |
