FileEntry::getUris: Return std::vector<std::string>

pull/235/merge
Tatsuhiro Tsujikawa 2014-06-04 22:33:46 +09:00
parent 4f3c526dcd
commit 9b54272190
5 changed files with 40 additions and 49 deletions

View File

@ -115,10 +115,11 @@ int64_t FileEntry::gtoloff(int64_t goff) const
return goff-offset_;
}
void FileEntry::getUris(std::vector<std::string>& uris) const
std::vector<std::string> FileEntry::getUris() const
{
uris.insert(uris.end(), spentUris_.begin(), spentUris_.end());
uris.insert(uris.end(), uris_.begin(), uris_.end());
std::vector<std::string> uris(std::begin(spentUris_), std::end(spentUris_));
uris.insert(std::end(uris), std::begin(uris_), std::end(uris_));
return uris;
}
namespace {
@ -588,8 +589,7 @@ void writeFilePath
bool memory)
{
if(entry->getPath().empty()) {
std::vector<std::string> uris;
entry->getUris(uris);
auto uris = entry->getUris();
if(uris.empty()) {
o << "n/a";
} else {

View File

@ -167,8 +167,8 @@ public:
bool insertUri(const std::string& uri, size_t pos);
// Inserts uris_ and spentUris_ into uris.
void getUris(std::vector<std::string>& uris) const;
// Returns uris_ and spentUris_ in single std::vector<std::string>.
std::vector<std::string> getUris() const;
void setContentType(std::string contentType);

View File

@ -532,8 +532,7 @@ createMetadataInfoFromFirstFileEntry
if(dctx->getFileEntries().empty()) {
return nullptr;
} else {
std::vector<std::string> uris;
dctx->getFileEntries()[0]->getUris(uris);
auto uris = dctx->getFileEntries()[0]->getUris();
if(uris.empty()) {
return nullptr;
}

View File

@ -82,8 +82,8 @@ void DownloadHelperTest::testCreateRequestGroupForUri()
createRequestGroupForUri(result, option_, uris);
CPPUNIT_ASSERT_EQUAL((size_t)1, result.size());
std::shared_ptr<RequestGroup> group = result[0];
std::vector<std::string> xuris;
group->getDownloadContext()->getFirstFileEntry()->getUris(xuris);
auto xuris =
group->getDownloadContext()->getFirstFileEntry()->getUris();
CPPUNIT_ASSERT_EQUAL((size_t)6, xuris.size());
for(size_t i = 0; i < 6; ++i) {
CPPUNIT_ASSERT_EQUAL(uris[i%3], xuris[i]);
@ -98,8 +98,8 @@ void DownloadHelperTest::testCreateRequestGroupForUri()
createRequestGroupForUri(result, option_, uris);
CPPUNIT_ASSERT_EQUAL((size_t)1, result.size());
std::shared_ptr<RequestGroup> group = result[0];
std::vector<std::string> xuris;
group->getDownloadContext()->getFirstFileEntry()->getUris(xuris);
auto xuris =
group->getDownloadContext()->getFirstFileEntry()->getUris();
CPPUNIT_ASSERT_EQUAL((size_t)5, xuris.size());
for(size_t i = 0; i < 5; ++i) {
CPPUNIT_ASSERT_EQUAL(uris[i%3], xuris[i]);
@ -111,8 +111,8 @@ void DownloadHelperTest::testCreateRequestGroupForUri()
createRequestGroupForUri(result, option_, uris);
CPPUNIT_ASSERT_EQUAL((size_t)1, result.size());
std::shared_ptr<RequestGroup> group = result[0];
std::vector<std::string> xuris;
group->getDownloadContext()->getFirstFileEntry()->getUris(xuris);
auto xuris =
group->getDownloadContext()->getFirstFileEntry()->getUris();
CPPUNIT_ASSERT_EQUAL((size_t)3, xuris.size());
for(size_t i = 0; i < 3; ++i) {
CPPUNIT_ASSERT_EQUAL(uris[i%3], xuris[i]);
@ -125,8 +125,8 @@ void DownloadHelperTest::testCreateRequestGroupForUri()
CPPUNIT_ASSERT_EQUAL((size_t)3, result.size());
// for alpha server
std::shared_ptr<RequestGroup> alphaGroup = result[0];
std::vector<std::string> alphaURIs;
alphaGroup->getDownloadContext()->getFirstFileEntry()->getUris(alphaURIs);
auto alphaURIs =
alphaGroup->getDownloadContext()->getFirstFileEntry()->getUris();
CPPUNIT_ASSERT_EQUAL((size_t)2, alphaURIs.size());
for(size_t i = 0; i < 2; ++i) {
CPPUNIT_ASSERT_EQUAL(uris[0], alphaURIs[i]);
@ -156,8 +156,8 @@ void DownloadHelperTest::testCreateRequestGroupForUri_parameterized()
CPPUNIT_ASSERT_EQUAL((size_t)1, result.size());
std::shared_ptr<RequestGroup> group = result[0];
std::vector<std::string> uris;
group->getDownloadContext()->getFirstFileEntry()->getUris(uris);
auto uris =
group->getDownloadContext()->getFirstFileEntry()->getUris();
CPPUNIT_ASSERT_EQUAL((size_t)3, uris.size());
CPPUNIT_ASSERT_EQUAL(std::string("http://alpha/file"), uris[0]);
@ -190,8 +190,8 @@ void DownloadHelperTest::testCreateRequestGroupForUri_BitTorrent()
CPPUNIT_ASSERT_EQUAL((size_t)2, result.size());
std::shared_ptr<RequestGroup> group = result[0];
std::vector<std::string> xuris;
group->getDownloadContext()->getFirstFileEntry()->getUris(xuris);
auto xuris =
group->getDownloadContext()->getFirstFileEntry()->getUris();
CPPUNIT_ASSERT_EQUAL((size_t)3, xuris.size());
CPPUNIT_ASSERT_EQUAL(uris[0], xuris[0]);
@ -204,8 +204,8 @@ void DownloadHelperTest::testCreateRequestGroupForUri_BitTorrent()
ctx->getBasePath());
std::shared_ptr<RequestGroup> torrentGroup = result[1];
std::vector<std::string> auxURIs;
torrentGroup->getDownloadContext()->getFirstFileEntry()->getUris(auxURIs);
auto auxURIs =
torrentGroup->getDownloadContext()->getFirstFileEntry()->getUris();
CPPUNIT_ASSERT(auxURIs.empty());
CPPUNIT_ASSERT_EQUAL(3, torrentGroup->getNumConcurrentCommand());
std::shared_ptr<DownloadContext> btctx = torrentGroup->getDownloadContext();
@ -242,8 +242,8 @@ void DownloadHelperTest::testCreateRequestGroupForUri_Metalink()
#endif // !ENABLE_BITTORRENT
std::shared_ptr<RequestGroup> group = result[0];
std::vector<std::string> xuris;
group->getDownloadContext()->getFirstFileEntry()->getUris(xuris);
auto xuris =
group->getDownloadContext()->getFirstFileEntry()->getUris();
CPPUNIT_ASSERT_EQUAL((size_t)3, xuris.size());
for(size_t i = 0; i < 3; ++i) {
CPPUNIT_ASSERT_EQUAL(uris[i], xuris[i]);
@ -282,8 +282,8 @@ void DownloadHelperTest::testCreateRequestGroupForUriList()
CPPUNIT_ASSERT_EQUAL((size_t)2, result.size());
std::shared_ptr<RequestGroup> fileGroup = result[0];
std::vector<std::string> fileURIs;
fileGroup->getDownloadContext()->getFirstFileEntry()->getUris(fileURIs);
auto fileURIs =
fileGroup->getDownloadContext()->getFirstFileEntry()->getUris();
CPPUNIT_ASSERT_EQUAL(std::string("http://alpha/file"), fileURIs[0]);
CPPUNIT_ASSERT_EQUAL(std::string("http://bravo/file"), fileURIs[1]);
CPPUNIT_ASSERT_EQUAL(std::string("http://charlie/file"), fileURIs[2]);
@ -322,8 +322,8 @@ void DownloadHelperTest::testCreateRequestGroupForBitTorrent()
CPPUNIT_ASSERT_EQUAL((size_t)1, result.size());
std::shared_ptr<RequestGroup> group = result[0];
std::vector<std::string> uris;
group->getDownloadContext()->getFirstFileEntry()->getUris(uris);
auto uris =
group->getDownloadContext()->getFirstFileEntry()->getUris();
// See -s option is ignored. See processRootDictionary() in
// bittorrent_helper.cc
CPPUNIT_ASSERT_EQUAL((size_t)3, uris.size());
@ -344,8 +344,8 @@ void DownloadHelperTest::testCreateRequestGroupForBitTorrent()
CPPUNIT_ASSERT_EQUAL((size_t)1, result.size());
std::shared_ptr<RequestGroup> group = result[0];
std::vector<std::string> uris;
group->getDownloadContext()->getFirstFileEntry()->getUris(uris);
auto uris =
group->getDownloadContext()->getFirstFileEntry()->getUris();
CPPUNIT_ASSERT_EQUAL((size_t)0, uris.size());
}
option_->put(PREF_FORCE_SEQUENTIAL, A2_V_TRUE);
@ -379,8 +379,8 @@ void DownloadHelperTest::testCreateRequestGroupForMetalink()
CPPUNIT_ASSERT_EQUAL((size_t)5, result.size());
#endif // !ENABLE_BITTORRENT
std::shared_ptr<RequestGroup> group = result[0];
std::vector<std::string> uris;
group->getDownloadContext()->getFirstFileEntry()->getUris(uris);
auto uris =
group->getDownloadContext()->getFirstFileEntry()->getUris();
std::sort(uris.begin(), uris.end());
CPPUNIT_ASSERT_EQUAL((size_t)2, uris.size());
CPPUNIT_ASSERT_EQUAL(std::string("ftp://ftphost/aria2-0.5.2.tar.bz2"),

View File

@ -48,8 +48,7 @@ void Metalink2RequestGroupTest::testGenerate()
// first file
{
std::shared_ptr<RequestGroup> rg = groups[0];
std::vector<std::string> uris;
rg->getDownloadContext()->getFirstFileEntry()->getUris(uris);
auto uris = rg->getDownloadContext()->getFirstFileEntry()->getUris();
std::sort(uris.begin(), uris.end());
CPPUNIT_ASSERT_EQUAL((size_t)2, uris.size());
CPPUNIT_ASSERT_EQUAL
@ -71,8 +70,7 @@ void Metalink2RequestGroupTest::testGenerate()
// second file
{
std::shared_ptr<RequestGroup> rg = groups[1];
std::vector<std::string> uris;
rg->getDownloadContext()->getFirstFileEntry()->getUris(uris);
auto uris = rg->getDownloadContext()->getFirstFileEntry()->getUris();
CPPUNIT_ASSERT_EQUAL((size_t)2, uris.size());
const std::shared_ptr<DownloadContext>& dctx = rg->getDownloadContext();
@ -92,8 +90,7 @@ void Metalink2RequestGroupTest::testGenerate()
// fifth file <- downloading .torrent file
{
std::shared_ptr<RequestGroup> rg = groups[4];
std::vector<std::string> uris;
rg->getDownloadContext()->getFirstFileEntry()->getUris(uris);
auto uris = rg->getDownloadContext()->getFirstFileEntry()->getUris();
CPPUNIT_ASSERT_EQUAL((size_t)1, uris.size());
CPPUNIT_ASSERT_EQUAL
(std::string("http://host/torrent-http.integrated.torrent"), uris[0]);
@ -111,8 +108,7 @@ void Metalink2RequestGroupTest::testGenerate()
#else
std::shared_ptr<RequestGroup> rg = groups[4];
#endif // ENABLE_BITTORRENT
std::vector<std::string> uris;
rg->getDownloadContext()->getFirstFileEntry()->getUris(uris);
auto uris = rg->getDownloadContext()->getFirstFileEntry()->getUris();
CPPUNIT_ASSERT_EQUAL((size_t)1, uris.size());
CPPUNIT_ASSERT_EQUAL
(std::string("http://host/torrent-http.integrated"), uris[0]);
@ -149,8 +145,7 @@ void Metalink2RequestGroupTest::testGenerate_groupByMetaurl()
// first RequestGroup is torrent for second RequestGroup
{
std::shared_ptr<RequestGroup> rg = groups[0];
std::vector<std::string> uris;
rg->getDownloadContext()->getFirstFileEntry()->getUris(uris);
auto uris = rg->getDownloadContext()->getFirstFileEntry()->getUris();
CPPUNIT_ASSERT_EQUAL((size_t)1, uris.size());
CPPUNIT_ASSERT_EQUAL(std::string("http://torrent"), uris[0]);
}
@ -189,22 +184,19 @@ void Metalink2RequestGroupTest::testGenerate_groupByMetaurl()
#else // !ENABLE_BITTORRENT
{
std::shared_ptr<RequestGroup> rg = groups[0];
std::vector<std::string> uris;
rg->getDownloadContext()->getFirstFileEntry()->getUris(uris);
auto uris = rg->getDownloadContext()->getFirstFileEntry()->getUris();
CPPUNIT_ASSERT_EQUAL((size_t)1, uris.size());
CPPUNIT_ASSERT_EQUAL(std::string("http://file1p1"), uris[0]);
}
{
std::shared_ptr<RequestGroup> rg = groups[1];
std::vector<std::string> uris;
rg->getDownloadContext()->getFirstFileEntry()->getUris(uris);
auto uris = rg->getDownloadContext()->getFirstFileEntry()->getUris();
CPPUNIT_ASSERT_EQUAL((size_t)1, uris.size());
CPPUNIT_ASSERT_EQUAL(std::string("http://file2p1"), uris[0]);
}
{
std::shared_ptr<RequestGroup> rg = groups[2];
std::vector<std::string> uris;
rg->getDownloadContext()->getFirstFileEntry()->getUris(uris);
auto uris = rg->getDownloadContext()->getFirstFileEntry()->getUris();
CPPUNIT_ASSERT_EQUAL((size_t)1, uris.size());
CPPUNIT_ASSERT_EQUAL(std::string("http://file3p1"), uris[0]);
}