summaryrefslogtreecommitdiff
path: root/noncore/net/opieirc/dcctransfer.cpp
blob: e97d1914d357505ffadca0dcdd389ed7d670c211 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include <qsocket.h>
#include <qfile.h>

#include "dcctransfer.h"


DCCTransfer::DCCTransfer(Q_UINT32 ip4Addr, Q_UINT16 port, const QString &filename, unsigned int size)
    : m_socket(new QSocket), m_file(new QFile), m_bufSize(4096), m_buffer(new char[m_bufSize]),
    m_ip4Addr(ip4Addr), m_port(port), m_totalSize(size), m_processedSize(0)
{
    m_file->setName(filename);
}
    
DCCTransfer::~DCCTransfer()
{
    if(m_socket)
        delete m_socket;
    if(m_file) {
        m_file->close();
        delete m_file;
    }
    if(m_buffer)
        delete []m_buffer;
}


void DCCTransfer::cancel()
{
    if(m_socket)
        m_socket->close();
    
    emit(finished(this, DCCTransfer::SelfAborted));
}

QString DCCTransfer::filename()
{
    if(!m_file)
        return QString::null;

    return m_file->name().mid(m_file->name().findRev('/') + 1);
}