/* */ #include "ChunkChecksum.h" #include "A2STR.h" namespace aria2 { ChunkChecksum::ChunkChecksum():pieceLength_(0) {} ChunkChecksum::ChunkChecksum (const std::string& hashType, const std::vector& pieceHashes, int32_t pieceLength) : hashType_(hashType), pieceHashes_(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(const std::string& hashType) { hashType_ = hashType; } void ChunkChecksum::setPieceHashes(const std::vector& pieceHashes) { pieceHashes_ = pieceHashes; } } // namespace aria2