コード例 #1
0
ファイル: filetransfer.cpp プロジェクト: psi-im/iris
// file transfer request accepted or error happened
void FileTransfer::ft_finished()
{
    JT_FT *ft = d->ft;
    d->ft = 0;

    if(ft->success()) {
        d->state = Connecting;
        d->rangeOffset = ft->rangeOffset();
        d->length = ft->rangeLength();
        if(d->length == 0)
            d->length = d->size - d->rangeOffset;
        d->streamType = ft->streamType();
        BytestreamManager *streamManager = d->m->streamManager(d->streamType);
        if (streamManager) {
            d->c = streamManager->createConnection();
            if (dynamic_cast<S5BManager*>(streamManager) && d->proxy.isValid()) {
                ((S5BConnection*)(d->c))->setProxy(d->proxy);
            }
            connect(d->c, SIGNAL(connected()), SLOT(stream_connected()));
            connect(d->c, SIGNAL(connectionClosed()), SLOT(stream_connectionClosed()));
            connect(d->c, SIGNAL(bytesWritten(qint64)), SLOT(stream_bytesWritten(qint64)));
            connect(d->c, SIGNAL(error(int)), SLOT(stream_error(int)));

            d->c->connectToJid(d->peer, d->id);
            accepted();
        }
        else {
コード例 #2
0
void FileTransfer::ft_finished()
{
	JT_FT *ft = d->ft;
	d->ft = 0;

	if(ft->success()) {
		d->state = Connecting;
		d->rangeOffset = ft->rangeOffset();
		d->length = ft->rangeLength();
		if(d->length == 0)
			d->length = d->size - d->rangeOffset;
		d->streamType = ft->streamType();
		d->c = d->m->client()->s5bManager()->createConnection();
		connect(d->c, SIGNAL(connected()), SLOT(s5b_connected()));
		connect(d->c, SIGNAL(connectionClosed()), SLOT(s5b_connectionClosed()));
		connect(d->c, SIGNAL(bytesWritten(int)), SLOT(s5b_bytesWritten(int)));
		connect(d->c, SIGNAL(error(int)), SLOT(s5b_error(int)));

		if(d->proxy.isValid())
			d->c->setProxy(d->proxy);
		d->c->connectToJid(d->peer, d->id);
		accepted();
	}