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> 2010-02-27 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Added MessageDigest::isStronger(). Now aria2 selects stronger hash Added MessageDigest::isStronger(). Now aria2 selects stronger hash

View File

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

View File

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

View File

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