/* # 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 #include #include class McastConfiguration; class McastReceiver; class QFile; class QTimer; class PVSIncomingMulticastTransfer : public QObject { Q_OBJECT public: PVSIncomingMulticastTransfer(QString const& sender, qulonglong transferID, qulonglong size, QString const& filename, 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(); void removeFile(); private: QString _sender; qulonglong _transferID; qulonglong _bytes; qulonglong _size; ushort _port; QFile* _file; McastReceiver* _receiver; McastConfiguration* _config; bool _started; QTimer* _progressTimer; }; #endif /* PVSINCOMINGMULTICASTTRANSFER_H_ */