00001 #include <qsocket.h>
00002 #include <qfile.h>
00003
00004 #include "dcctransfer.h"
00005
00006
00007 DCCTransfer::DCCTransfer(Q_UINT32 ip4Addr, Q_UINT16 port, const QString &filename, unsigned int size)
00008 : m_socket(new QSocket), m_file(new QFile), m_bufSize(4096), m_buffer(new char[m_bufSize]),
00009 m_ip4Addr(ip4Addr), m_port(port), m_totalSize(size), m_processedSize(0)
00010 {
00011 m_file->setName(filename);
00012 }
00013
00014 DCCTransfer::~DCCTransfer()
00015 {
00016 if(m_socket)
00017 delete m_socket;
00018 if(m_file) {
00019 m_file->close();
00020 delete m_file;
00021 }
00022 if(m_buffer)
00023 delete []m_buffer;
00024 }
00025
00026
00027 void DCCTransfer::cancel()
00028 {
00029 if(m_socket)
00030 m_socket->close();
00031
00032 emit(finished(this, DCCTransfer::SelfAborted));
00033 }
00034
00035 QString DCCTransfer::filename()
00036 {
00037 if(!m_file)
00038 return QString::null;
00039
00040 return m_file->name().mid(m_file->name().findRev('/') + 1);
00041 }