diff options
author | Sebastien Braun | 2010-07-17 17:23:29 +0200 |
---|---|---|
committer | Sebastien Braun | 2010-07-17 17:23:29 +0200 |
commit | 58fb0517b78c1d9715ce2e3c8faf6bc02514b310 (patch) | |
tree | acbbd6f37c446d7dce4767f643c229ebd5fb00bd /src | |
parent | Implement --no-fork/-F command line argument for pvs (diff) | |
download | pvs-58fb0517b78c1d9715ce2e3c8faf6bc02514b310.tar.gz pvs-58fb0517b78c1d9715ce2e3c8faf6bc02514b310.tar.xz pvs-58fb0517b78c1d9715ce2e3c8faf6bc02514b310.zip |
Remember to delete outgoing transfers when they are finished or failed
Diffstat (limited to 'src')
-rw-r--r-- | src/pvs.cpp | 11 | ||||
-rw-r--r-- | src/pvs.h | 3 |
2 files changed, 14 insertions, 0 deletions
diff --git a/src/pvs.cpp b/src/pvs.cpp index c7fe5ce..af5958e 100644 --- a/src/pvs.cpp +++ b/src/pvs.cpp @@ -659,6 +659,8 @@ bool PVS::createMulticastTransfer(QString const& objectPath, quint64& transferID connect(transfer, SIGNAL(failed(qulonglong, QString const)), SIGNAL(outgoingMulticastTransferFailed(qulonglong, QString const))); connect(transfer, SIGNAL(progress(qulonglong, qulonglong, qulonglong)), SIGNAL(outgoingMulticastTransferProgress(qulonglong, qulonglong, qulonglong))); connect(transfer, SIGNAL(announce(PVSMsg)), _pvsServerConnection, SLOT(sendMessage(PVSMsg))); + connect(transfer, SIGNAL(finished(qulonglong)), SLOT(outgoingMulticastTransferDelete(qulonglong))); + connect(transfer, SIGNAL(failed(qulonglong, QString const)), SLOT(outgoingMulticastTransferDelete(qulonglong))); QTimer::singleShot(0, transfer, SLOT(start())); errorReason = ""; return true; @@ -687,3 +689,12 @@ quint64 PVS::generateMcastTransferID() return (nodeID & Q_UINT64_C(0xffffffffffff0000)) | (quint64)(++counter); } +void PVS::outgoingMulticastTransferDelete(qulonglong transferID) +{ + PVSOutgoingMulticastTransfer* transfer = _outgoingTransfers.value(transferID, 0); + if (!transfer) + return; + + _outgoingTransfers.remove(transferID); + transfer->deleteLater(); +} @@ -159,5 +159,8 @@ private: QHash<quint64, PVSOutgoingMulticastTransfer*> _outgoingTransfers; static quint64 generateMcastTransferID(); +private Q_SLOTS: + // housekeeping + void outgoingMulticastTransferDelete(qulonglong transferID); }; #endif /* PVSCLIENT_H_ */ |