/* */ #include "TransferStat.h" namespace aria2 { TransferStat operator+(const TransferStat& a, const TransferStat& b) { TransferStat c; c.downloadSpeed = a.downloadSpeed+b.downloadSpeed; c.uploadSpeed = a.uploadSpeed+b.uploadSpeed; c.sessionDownloadLength = a.sessionDownloadLength+b.sessionDownloadLength; c.sessionUploadLength = a.sessionUploadLength+b.sessionUploadLength; return c; } TransferStat operator-(const TransferStat& a, const TransferStat& b) { TransferStat c; if(a.downloadSpeed > b.downloadSpeed) { c.downloadSpeed = a.downloadSpeed-b.downloadSpeed; } if(a.uploadSpeed > b.uploadSpeed) { c.uploadSpeed = a.uploadSpeed-b.uploadSpeed; } if(a.sessionDownloadLength > b.sessionDownloadLength) { c.sessionDownloadLength = a.sessionDownloadLength-b.sessionDownloadLength; } if(a.sessionUploadLength > b.sessionUploadLength) { c.sessionUploadLength = a.sessionUploadLength-b.sessionUploadLength; } return c; } TransferStat& TransferStat::operator+=(const TransferStat& stat) { downloadSpeed += stat.downloadSpeed; uploadSpeed += stat.uploadSpeed; sessionDownloadLength += stat.sessionDownloadLength; sessionUploadLength += stat.sessionUploadLength; return *this; } TransferStat& TransferStat::operator-=(const TransferStat& stat) { if(downloadSpeed > stat.downloadSpeed) { downloadSpeed -= stat.downloadSpeed; } else { downloadSpeed = 0; } if(uploadSpeed > stat.uploadSpeed) { uploadSpeed -= stat.uploadSpeed; } else { uploadSpeed = 0; } if(sessionDownloadLength > stat.sessionDownloadLength) { sessionDownloadLength -= stat.sessionDownloadLength; } else { sessionDownloadLength = 0; } if(sessionUploadLength > stat.sessionUploadLength) { sessionUploadLength -= stat.sessionUploadLength; } else { sessionUploadLength = 0; } return *this; } } // namespace aria2