/* # Copyright (c) 2009, 2010 - 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/ */ #ifndef CLIENTFILERECEIVEDIALOG_H_ #define CLIENTFILERECEIVEDIALOG_H_ #include #include #include "ui_clientFileReceiveDialog.h" class OrgOpenslxPvsInterface; class ClientFileReceiveDialog: public QDialog, private Ui::ClientFileReceiveDialogClass { Q_OBJECT public: ClientFileReceiveDialog(QTcpSocket *socket, QWidget *parent = 0); ClientFileReceiveDialog(QString const& sender, qulonglong transferID, QString const& basename, qulonglong size, OrgOpenslxPvsInterface* ifaceDBus, QWidget* parent = 0); ~ClientFileReceiveDialog(); private Q_SLOTS: void receiveHeader(); void receiveFile(); void close(); void error(QAbstractSocket::SocketError error); // multicast: void mcastTransferStarted(qulonglong transferID); void mcastTransferProgress(qulonglong transferID, qulonglong bytes, qulonglong of); void mcastTransferFinished(qulonglong transferID); void mcastTransferFailed(qulonglong transferID, QString reason); void cancelTransfer(); private: void sendAck(bool b); QString formatSize(qint64 size); QTcpSocket *_socket; QFile *_file; qint64 _bytesToRead; int div; // multicast: OrgOpenslxPvsInterface* _ifaceDBus; QString _filename; qulonglong _transferID; }; #endif /* CLIENTFILERECEIVEDIALOG_H_ */