summaryrefslogtreecommitdiff
path: root/noncore/net/opieirc/dcctransfer.h
authorskyhusker <skyhusker>2005-02-03 21:47:50 (UTC)
committer skyhusker <skyhusker>2005-02-03 21:47:50 (UTC)
commit8aaae9e3eca7853e9c693d2401f721d75209acf7 (patch) (side-by-side diff)
tree6f700d154fac8510b322242496604d0ad7589377 /noncore/net/opieirc/dcctransfer.h
parent875b3b63624308f4e50f82e17db27edeb9609d6c (diff)
downloadopie-8aaae9e3eca7853e9c693d2401f721d75209acf7.zip
opie-8aaae9e3eca7853e9c693d2401f721d75209acf7.tar.gz
opie-8aaae9e3eca7853e9c693d2401f721d75209acf7.tar.bz2
Added DCC receive support
Diffstat (limited to 'noncore/net/opieirc/dcctransfer.h') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/opieirc/dcctransfer.h44
1 files changed, 44 insertions, 0 deletions
diff --git a/noncore/net/opieirc/dcctransfer.h b/noncore/net/opieirc/dcctransfer.h
new file mode 100644
index 0000000..775ed24
--- a/dev/null
+++ b/noncore/net/opieirc/dcctransfer.h
@@ -0,0 +1,44 @@
+#ifndef DCCTRANSFER_H
+#define DCCTRANSFER_H
+
+#include <qobject.h>
+
+class QSocket;
+class QFile;
+class QString;
+
+class DCCTransfer: public QObject {
+ Q_OBJECT
+public:
+ enum Type { Send, Recv };
+ enum EndCode { Successfull, SelfAborted, PeerAborted, Timeout };
+
+ DCCTransfer(Q_UINT32 ip4Addr, Q_UINT16 port, const QString &filename, unsigned int size);
+ virtual ~DCCTransfer();
+
+ void cancel();
+
+ QString filename();
+
+signals:
+ virtual void finished(DCCTransfer *transfer, EndCode code);
+ virtual void progress(int progress);
+
+protected slots:
+ virtual void slotProcess() = 0;
+ virtual void slotFinished() = 0;
+
+protected:
+ QSocket *m_socket;
+ QFile *m_file;
+ unsigned int m_bufSize;
+ char *m_buffer;
+ Q_UINT32 m_ip4Addr;
+ Q_UINT16 m_port;
+ unsigned int m_totalSize;
+ unsigned int m_processedSize;
+ bool m_cancel;
+ bool m_timeout;
+};
+
+#endif