summaryrefslogtreecommitdiffstats
path: root/src/net/mcast/McastSender.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/net/mcast/McastSender.h')
-rw-r--r--src/net/mcast/McastSender.h73
1 files changed, 73 insertions, 0 deletions
diff --git a/src/net/mcast/McastSender.h b/src/net/mcast/McastSender.h
new file mode 100644
index 0000000..0c5e29f
--- /dev/null
+++ b/src/net/mcast/McastSender.h
@@ -0,0 +1,73 @@
+/*
+# 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 <QCryptographicHash>
+#include <QIODevice>
+#include <QObject>
+
+#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();
+ void progress(quint64 offset);
+ void allSent();
+
+public slots:
+ void start();
+ void start(McastPGMSocket* openSocket);
+ void close();
+
+private slots:
+ void deferredStart();
+ void readyToSend();
+ void socketFinished();
+
+private:
+ McastConfiguration* _config;
+ McastPGMSocket* _socket;
+ QIODevice* _iodev;
+ quint64 _curoffs;
+ QCryptographicHash _hash;
+ bool _finished;
+};
+
+#endif /* MCASTSENDER_H_ */