mirror of https://github.com/aria2/aria2
Rewritten parseIndexPath. Renamed createIndexPathMap as createIndexPaths.
parent
701a2d6ff8
commit
f884ad8339
|
@ -189,10 +189,10 @@ createBtRequestGroup(const std::string& torrentFilePath,
|
|||
sgl.normalize();
|
||||
dctx->setFileFilter(sgl);
|
||||
std::istringstream indexOutIn(option->get(PREF_INDEX_OUT));
|
||||
std::map<size_t, std::string> indexPathMap =
|
||||
util::createIndexPathMap(indexOutIn);
|
||||
for(std::map<size_t, std::string>::const_iterator i = indexPathMap.begin(),
|
||||
eoi = indexPathMap.end(); i != eoi; ++i) {
|
||||
std::vector<std::pair<size_t, std::string> > indexPaths =
|
||||
util::createIndexPaths(indexOutIn);
|
||||
for(std::vector<std::pair<size_t, std::string> >::const_iterator i =
|
||||
indexPaths.begin(), eoi = indexPaths.end(); i != eoi; ++i) {
|
||||
dctx->setFilePathWithIndex
|
||||
((*i).first, util::applyDir(option->get(PREF_DIR), (*i).second));
|
||||
}
|
||||
|
|
12
src/util.cc
12
src/util.cc
|
@ -1370,7 +1370,7 @@ std::string htmlEscape(const std::string& src)
|
|||
return dest;
|
||||
}
|
||||
|
||||
std::map<size_t, std::string>::value_type
|
||||
std::pair<size_t, std::string>
|
||||
parseIndexPath(const std::string& line)
|
||||
{
|
||||
std::pair<std::string, std::string> p;
|
||||
|
@ -1380,17 +1380,17 @@ parseIndexPath(const std::string& line)
|
|||
throw DL_ABORT_EX(fmt("Path with index=%u is empty.",
|
||||
static_cast<unsigned int>(index)));
|
||||
}
|
||||
return std::map<size_t, std::string>::value_type(index, p.second);
|
||||
return std::make_pair(index, p.second);
|
||||
}
|
||||
|
||||
std::map<size_t, std::string> createIndexPathMap(std::istream& i)
|
||||
std::vector<std::pair<size_t, std::string> > createIndexPaths(std::istream& i)
|
||||
{
|
||||
std::map<size_t, std::string> indexPathMap;
|
||||
std::vector<std::pair<size_t, std::string> > indexPaths;
|
||||
std::string line;
|
||||
while(getline(i, line)) {
|
||||
indexPathMap.insert(indexPathMap.begin(), parseIndexPath(line));
|
||||
indexPaths.push_back(parseIndexPath(line));
|
||||
}
|
||||
return indexPathMap;
|
||||
return indexPaths;
|
||||
}
|
||||
|
||||
namespace {
|
||||
|
|
|
@ -347,10 +347,10 @@ std::string joinPath(InputIterator first, InputIterator last)
|
|||
|
||||
// Parses INDEX=PATH format string. INDEX must be an unsigned
|
||||
// integer.
|
||||
std::map<size_t, std::string>::value_type
|
||||
std::pair<size_t, std::string>
|
||||
parseIndexPath(const std::string& line);
|
||||
|
||||
std::map<size_t, std::string> createIndexPathMap(std::istream& i);
|
||||
std::vector<std::pair<size_t, std::string> > createIndexPaths(std::istream& i);
|
||||
|
||||
/**
|
||||
* Take a string src which is a delimited list and add its elements
|
||||
|
|
|
@ -62,7 +62,7 @@ class UtilTest:public CppUnit::TestFixture {
|
|||
CPPUNIT_TEST(testHtmlEscape);
|
||||
CPPUNIT_TEST(testJoinPath);
|
||||
CPPUNIT_TEST(testParseIndexPath);
|
||||
CPPUNIT_TEST(testCreateIndexPathMap);
|
||||
CPPUNIT_TEST(testCreateIndexPaths);
|
||||
CPPUNIT_TEST(testGenerateRandomData);
|
||||
CPPUNIT_TEST(testFromHex);
|
||||
CPPUNIT_TEST(testParsePrioritizePieceRange);
|
||||
|
@ -122,7 +122,7 @@ public:
|
|||
void testHtmlEscape();
|
||||
void testJoinPath();
|
||||
void testParseIndexPath();
|
||||
void testCreateIndexPathMap();
|
||||
void testCreateIndexPaths();
|
||||
void testGenerateRandomData();
|
||||
void testFromHex();
|
||||
void testParsePrioritizePieceRange();
|
||||
|
@ -1015,7 +1015,7 @@ void UtilTest::testJoinPath()
|
|||
|
||||
void UtilTest::testParseIndexPath()
|
||||
{
|
||||
std::map<size_t, std::string>::value_type p = util::parseIndexPath("1=foo");
|
||||
std::pair<size_t, std::string> p = util::parseIndexPath("1=foo");
|
||||
CPPUNIT_ASSERT_EQUAL((size_t)1, p.first);
|
||||
CPPUNIT_ASSERT_EQUAL(std::string("foo"), p.second);
|
||||
try {
|
||||
|
@ -1032,17 +1032,17 @@ void UtilTest::testParseIndexPath()
|
|||
}
|
||||
}
|
||||
|
||||
void UtilTest::testCreateIndexPathMap()
|
||||
void UtilTest::testCreateIndexPaths()
|
||||
{
|
||||
std::stringstream in
|
||||
("1=/tmp/myfile\n"
|
||||
"100=/myhome/mypicture.png\n");
|
||||
std::map<size_t, std::string> m = util::createIndexPathMap(in);
|
||||
std::vector<std::pair<size_t, std::string> > m = util::createIndexPaths(in);
|
||||
CPPUNIT_ASSERT_EQUAL((size_t)2, m.size());
|
||||
CPPUNIT_ASSERT(m.find(1) != m.end());
|
||||
CPPUNIT_ASSERT_EQUAL(std::string("/tmp/myfile"), m[1]);
|
||||
CPPUNIT_ASSERT(m.find(100) != m.end());
|
||||
CPPUNIT_ASSERT_EQUAL(std::string("/myhome/mypicture.png"), m[100]);
|
||||
CPPUNIT_ASSERT_EQUAL((size_t)1, m[0].first);
|
||||
CPPUNIT_ASSERT_EQUAL(std::string("/tmp/myfile"), m[0].second);
|
||||
CPPUNIT_ASSERT_EQUAL((size_t)100, m[1].first);
|
||||
CPPUNIT_ASSERT_EQUAL(std::string("/myhome/mypicture.png"), m[1].second);
|
||||
}
|
||||
|
||||
void UtilTest::testGenerateRandomData()
|
||||
|
|
Loading…
Reference in New Issue