/* # 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/mcast/McastReceiver.h # - implement the sender-side multicast file transfer protocol -- interface # ----------------------------------------------------------------------------- */ #ifndef MCASTSENDER_H_ #define MCASTSENDER_H_ #include #include #include #include "McastConfiguration.h" #include "McastPGMSocket.h" class McastSender : public QObject { Q_OBJECT public: McastSender(QIODevice* iodev = 0, McastConfiguration const* config = 0, QObject* parent = 0); virtual ~McastSender(); McastConfiguration* config() { return _config; } QIODevice* iodevice() const { return _iodev; } void setIODevice(QIODevice* iodevice) { _iodev = iodevice; } signals: void finished(); public slots: void start(); void close(); private slots: void readyToSend(); void socketFinished(); private: McastConfiguration* _config; McastPGMSocket* _socket; QIODevice* _iodev; quint64 _curoffs; QCryptographicHash _hash; bool _finished; }; #endif /* MCASTSENDER_H_ */