/* */ #include "ChunkChecksum.h" #include "A2STR.h" namespace aria2 { ChunkChecksum::ChunkChecksum() : pieceLength_(0) {} ChunkChecksum::ChunkChecksum(std::string hashType, std::vector pieceHashes, int32_t pieceLength) : hashType_(std::move(hashType)), pieceHashes_(std::move(pieceHashes)), pieceLength_(pieceLength) { } bool ChunkChecksum::validateChunk(const std::string& actualDigest, size_t index) const { const std::string& digest = getPieceHash(index); return !digest.empty() && actualDigest == digest; } int64_t ChunkChecksum::getEstimatedDataLength() const { return static_cast(pieceLength_) * pieceHashes_.size(); } size_t ChunkChecksum::countPieceHash() const { return pieceHashes_.size(); } const std::string& ChunkChecksum::getPieceHash(size_t index) const { if (index < pieceHashes_.size()) { return pieceHashes_[index]; } else { return A2STR::NIL; } } void ChunkChecksum::setHashType(std::string hashType) { hashType_ = std::move(hashType); } void ChunkChecksum::setPieceHashes(std::vector pieceHashes) { pieceHashes_ = std::move(pieceHashes); } } // namespace aria2