2010-02-27 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>

Use vector instead of deque for ChunkChecksum.
	* src/ChunkChecksum.h
	* src/MetalinkParserController.cc
	* src/MetalinkParserController.h
pull/1/head
Tatsuhiro Tsujikawa 2010-02-27 14:32:02 +00:00
parent 18d7eb5b77
commit 4bef54c8e9
4 changed files with 20 additions and 12 deletions

View File

@ -1,3 +1,10 @@
2010-02-27 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Use vector instead of deque for ChunkChecksum.
* src/ChunkChecksum.h
* src/MetalinkParserController.cc
* src/MetalinkParserController.h
2010-02-27 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Added MessageDigest::isStronger(). Now aria2 selects stronger hash

View File

@ -36,23 +36,25 @@
#define _D_CHUNK_CHECKSUM_H_
#include "common.h"
#include <string>
#include <vector>
#include "SharedHandle.h"
#include "A2STR.h"
#include <string>
#include <deque>
namespace aria2 {
class ChunkChecksum {
private:
std::string _algo;
std::deque<std::string> _checksums;
std::vector<std::string> _checksums;
size_t _checksumLength;
public:
ChunkChecksum():_checksumLength(0) {}
ChunkChecksum(const std::string& algo,
const std::deque<std::string>& checksums,
const std::vector<std::string>& checksums,
size_t checksumLength):
_algo(algo),
_checksums(checksums),
@ -87,7 +89,7 @@ public:
}
}
const std::deque<std::string>& getChecksums() const
const std::vector<std::string>& getChecksums() const
{
return _checksums;
}
@ -112,7 +114,7 @@ public:
_checksumLength = length;
}
void setChecksums(const std::deque<std::string>& mds)
void setChecksums(const std::vector<std::string>& mds)
{
_checksums = mds;
}

View File

@ -35,7 +35,6 @@
#include "MetalinkParserController.h"
#include <algorithm>
#include <vector>
#include "Metalinker.h"
#include "MetalinkEntry.h"
@ -364,7 +363,7 @@ void MetalinkParserController::commitChunkChecksumTransactionV4()
if(_tEntry->chunkChecksum.isNull() ||
MessageDigestContext::isStronger(_tChunkChecksumV4->getAlgo(),
_tEntry->chunkChecksum->getAlgo())) {
std::deque<std::string> checksums(_tempChunkChecksumsV4.begin(),
std::vector<std::string> checksums(_tempChunkChecksumsV4.begin(),
_tempChunkChecksumsV4.end());
_tChunkChecksumV4->setChecksums(checksums);
_tEntry->chunkChecksum = _tChunkChecksumV4;
@ -470,7 +469,7 @@ void MetalinkParserController::commitChunkChecksumTransaction()
_tEntry->chunkChecksum->getAlgo())) {
std::sort(_tempChunkChecksums.begin(), _tempChunkChecksums.end(),
Ascend1st<std::pair<size_t, std::string> >());
std::deque<std::string> checksums;
std::vector<std::string> checksums;
std::transform(_tempChunkChecksums.begin(), _tempChunkChecksums.end(),
std::back_inserter(checksums),
select2nd<std::pair<size_t, std::string> >());

View File

@ -39,7 +39,7 @@
#include <string>
#include <utility>
#include <deque>
#include <vector>
#include "SharedHandle.h"
@ -70,11 +70,11 @@ private:
SharedHandle<ChunkChecksum> _tChunkChecksumV4; // Metalink4Spec
std::deque<std::string> _tempChunkChecksumsV4; // Metalink4Spec
std::vector<std::string> _tempChunkChecksumsV4; // Metalink4Spec
SharedHandle<ChunkChecksum> _tChunkChecksum; // Metalink3Spec
std::deque<std::pair<size_t, std::string> > _tempChunkChecksums;//Metalink3Spec
std::vector<std::pair<size_t, std::string> > _tempChunkChecksums;//Metalink3Spec
std::pair<size_t, std::string> _tempHashPair; // Metalink3Spec