2009-05-07 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>

Pass reference of Option object instead of pointer.
	* src/download_helper.cc
	* src/download_helper.h
	* src/main.cc
	* test/DownloadHelperTest.cc
pull/1/head
Tatsuhiro Tsujikawa 2009-05-07 08:52:38 +00:00
parent 40d5c1e763
commit ce9c79a2f3
5 changed files with 64 additions and 55 deletions

View File

@ -1,3 +1,11 @@
2009-05-07 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Pass reference of Option object instead of pointer.
* src/download_helper.cc
* src/download_helper.h
* src/main.cc
* test/DownloadHelperTest.cc
2009-05-07 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> 2009-05-07 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Don't retrieve PREF_MAX_DOWNLOAD_LIMIT and PREF_MAX_UPLOAD_LIMIT Don't retrieve PREF_MAX_DOWNLOAD_LIMIT and PREF_MAX_UPLOAD_LIMIT

View File

@ -92,13 +92,13 @@ static void splitURI(std::deque<std::string>& result,
} }
static SharedHandle<RequestGroup> createRequestGroup static SharedHandle<RequestGroup> createRequestGroup
(const Option* op, const std::deque<std::string>& uris, (const Option& op, const std::deque<std::string>& uris,
const Option& requestOption, const Option& requestOption,
bool useOutOption = false) bool useOutOption = false)
{ {
SharedHandle<RequestGroup> rg(new RequestGroup(op, uris)); SharedHandle<RequestGroup> rg(new RequestGroup(&op, uris));
SharedHandle<SingleFileDownloadContext> dctx SharedHandle<SingleFileDownloadContext> dctx
(new SingleFileDownloadContext(op->getAsInt(PREF_SEGMENT_SIZE), (new SingleFileDownloadContext(op.getAsInt(PREF_SEGMENT_SIZE),
0, 0,
A2STR::NIL, A2STR::NIL,
useOutOption&&!requestOption.blank(PREF_OUT)? useOutOption&&!requestOption.blank(PREF_OUT)?
@ -114,16 +114,16 @@ static SharedHandle<RequestGroup> createRequestGroup
static static
SharedHandle<RequestGroup> SharedHandle<RequestGroup>
createBtRequestGroup(const std::string& torrentFilePath, createBtRequestGroup(const std::string& torrentFilePath,
Option* op, const Option& op,
const std::deque<std::string>& auxUris, const std::deque<std::string>& auxUris,
const Option& requestOption) const Option& requestOption)
{ {
SharedHandle<RequestGroup> rg(new RequestGroup(op, auxUris)); SharedHandle<RequestGroup> rg(new RequestGroup(&op, auxUris));
SharedHandle<DefaultBtContext> btContext(new DefaultBtContext()); SharedHandle<DefaultBtContext> btContext(new DefaultBtContext());
btContext->setDir(requestOption.get(PREF_DIR)); btContext->setDir(requestOption.get(PREF_DIR));
btContext->load(torrentFilePath);// may throw exception btContext->load(torrentFilePath);// may throw exception
if(op->defined(PREF_PEER_ID_PREFIX)) { if(op.defined(PREF_PEER_ID_PREFIX)) {
btContext->setPeerIdPrefix(op->get(PREF_PEER_ID_PREFIX)); btContext->setPeerIdPrefix(op.get(PREF_PEER_ID_PREFIX));
} }
btContext->setFileFilter btContext->setFileFilter
(Util::parseIntRange(requestOption.get(PREF_SELECT_FILE))); (Util::parseIntRange(requestOption.get(PREF_SELECT_FILE)));
@ -141,21 +141,21 @@ createBtRequestGroup(const std::string& torrentFilePath,
} }
void createRequestGroupForBitTorrent void createRequestGroupForBitTorrent
(std::deque<SharedHandle<RequestGroup> >& result, Option* op, (std::deque<SharedHandle<RequestGroup> >& result, const Option& op,
const std::deque<std::string>& uris) const std::deque<std::string>& uris)
{ {
std::deque<std::string> nargs; std::deque<std::string> nargs;
if(op->get(PREF_PARAMETERIZED_URI) == V_TRUE) { if(op.get(PREF_PARAMETERIZED_URI) == V_TRUE) {
unfoldURI(nargs, uris); unfoldURI(nargs, uris);
} else { } else {
nargs = uris; nargs = uris;
} }
// we ignore -Z option here // we ignore -Z option here
size_t numSplit = op->getAsInt(PREF_SPLIT); size_t numSplit = op.getAsInt(PREF_SPLIT);
std::deque<std::string> auxUris; std::deque<std::string> auxUris;
splitURI(auxUris, nargs.begin(), nargs.end(), numSplit); splitURI(auxUris, nargs.begin(), nargs.end(), numSplit);
SharedHandle<RequestGroup> rg = SharedHandle<RequestGroup> rg =
createBtRequestGroup(op->get(PREF_TORRENT_FILE), op, auxUris, *op); createBtRequestGroup(op.get(PREF_TORRENT_FILE), op, auxUris, op);
rg->setNumConcurrentCommand(numSplit); rg->setNumConcurrentCommand(numSplit);
result.push_back(rg); result.push_back(rg);
} }
@ -164,9 +164,9 @@ void createRequestGroupForBitTorrent
#ifdef ENABLE_METALINK #ifdef ENABLE_METALINK
void createRequestGroupForMetalink void createRequestGroupForMetalink
(std::deque<SharedHandle<RequestGroup> >& result, Option* op) (std::deque<SharedHandle<RequestGroup> >& result, const Option& op)
{ {
Metalink2RequestGroup(op).generate(result, op->get(PREF_METALINK_FILE), *op); Metalink2RequestGroup(&op).generate(result, op.get(PREF_METALINK_FILE), op);
if(result.empty()) { if(result.empty()) {
throw FatalException(MSG_NO_FILES_TO_DOWNLOAD); throw FatalException(MSG_NO_FILES_TO_DOWNLOAD);
} }
@ -177,11 +177,11 @@ class AccRequestGroup {
private: private:
std::deque<SharedHandle<RequestGroup> >& _requestGroups; std::deque<SharedHandle<RequestGroup> >& _requestGroups;
ProtocolDetector _detector; ProtocolDetector _detector;
Option* _op; const Option& _op;
const Option& _requestOption; const Option& _requestOption;
public: public:
AccRequestGroup(std::deque<SharedHandle<RequestGroup> >& requestGroups, AccRequestGroup(std::deque<SharedHandle<RequestGroup> >& requestGroups,
Option* op, const Option& op,
const Option& requestOption): const Option& requestOption):
_requestGroups(requestGroups), _op(op), _requestOption(requestOption) {} _requestGroups(requestGroups), _op(op), _requestOption(requestOption) {}
@ -190,7 +190,7 @@ public:
{ {
if(_detector.isStreamProtocol(uri)) { if(_detector.isStreamProtocol(uri)) {
std::deque<std::string> streamURIs; std::deque<std::string> streamURIs;
size_t numSplit = _op->getAsInt(PREF_SPLIT); size_t numSplit = _op.getAsInt(PREF_SPLIT);
for(size_t i = 0; i < numSplit; ++i) { for(size_t i = 0; i < numSplit; ++i) {
streamURIs.push_back(uri); streamURIs.push_back(uri);
} }
@ -215,7 +215,7 @@ public:
#ifdef ENABLE_METALINK #ifdef ENABLE_METALINK
else if(_detector.guessMetalinkFile(uri)) { else if(_detector.guessMetalinkFile(uri)) {
try { try {
Metalink2RequestGroup(_op).generate(_requestGroups, uri, Metalink2RequestGroup(&_op).generate(_requestGroups, uri,
_requestOption); _requestOption);
} catch(RecoverableException& e) { } catch(RecoverableException& e) {
// error occurred while parsing metalink file. // error occurred while parsing metalink file.
@ -247,16 +247,16 @@ static void copyIfndef(Option& dest, const Option& src, const std::string& name)
} }
static void createRequestGroupForUri static void createRequestGroupForUri
(std::deque<SharedHandle<RequestGroup> >& result, Option* op, (std::deque<SharedHandle<RequestGroup> >& result, const Option& op,
const std::deque<std::string>& uris, const Option& requestOption) const std::deque<std::string>& uris, const Option& requestOption)
{ {
std::deque<std::string> nargs; std::deque<std::string> nargs;
if(op->get(PREF_PARAMETERIZED_URI) == V_TRUE) { if(op.get(PREF_PARAMETERIZED_URI) == V_TRUE) {
unfoldURI(nargs, uris); unfoldURI(nargs, uris);
} else { } else {
nargs = uris; nargs = uris;
} }
if(op->get(PREF_FORCE_SEQUENTIAL) == V_TRUE) { if(op.get(PREF_FORCE_SEQUENTIAL) == V_TRUE) {
std::for_each(nargs.begin(), nargs.end(), std::for_each(nargs.begin(), nargs.end(),
AccRequestGroup(result, op, requestOption)); AccRequestGroup(result, op, requestOption));
} else { } else {
@ -264,7 +264,7 @@ static void createRequestGroupForUri
std::stable_partition(nargs.begin(), nargs.end(), StreamProtocolFilter()); std::stable_partition(nargs.begin(), nargs.end(), StreamProtocolFilter());
// let's process http/ftp protocols first. // let's process http/ftp protocols first.
if(nargs.begin() != strmProtoEnd) { if(nargs.begin() != strmProtoEnd) {
size_t numSplit = op->getAsInt(PREF_SPLIT); size_t numSplit = op.getAsInt(PREF_SPLIT);
std::deque<std::string> streamURIs; std::deque<std::string> streamURIs;
splitURI(streamURIs, nargs.begin(), strmProtoEnd, splitURI(streamURIs, nargs.begin(), strmProtoEnd,
numSplit); numSplit);
@ -280,10 +280,10 @@ static void createRequestGroupForUri
} }
void createRequestGroupForUri void createRequestGroupForUri
(std::deque<SharedHandle<RequestGroup> >& result, Option* op, (std::deque<SharedHandle<RequestGroup> >& result, const Option& op,
const std::deque<std::string>& uris) const std::deque<std::string>& uris)
{ {
createRequestGroupForUri(result, op, uris, *op); createRequestGroupForUri(result, op, uris, op);
} }
template<typename InputIterator> template<typename InputIterator>
@ -296,7 +296,8 @@ static void foreachCopyIfndef(InputIterator first, InputIterator last,
} }
static void createRequestGroupForUriList static void createRequestGroupForUriList
(std::deque<SharedHandle<RequestGroup> >& result, Option* op, std::istream& in) (std::deque<SharedHandle<RequestGroup> >& result, const Option& op,
std::istream& in)
{ {
UriListParser p(in); UriListParser p(in);
while(p.hasNext()) { while(p.hasNext()) {
@ -316,24 +317,24 @@ static void createRequestGroupForUriList
}; };
foreachCopyIfndef(&REQUEST_OPTIONS[0], foreachCopyIfndef(&REQUEST_OPTIONS[0],
&REQUEST_OPTIONS[arrayLength(REQUEST_OPTIONS)], &REQUEST_OPTIONS[arrayLength(REQUEST_OPTIONS)],
requestOption, *op); requestOption, op);
createRequestGroupForUri(result, op, uris, requestOption); createRequestGroupForUri(result, op, uris, requestOption);
} }
} }
void createRequestGroupForUriList void createRequestGroupForUriList
(std::deque<SharedHandle<RequestGroup> >& result, Option* op) (std::deque<SharedHandle<RequestGroup> >& result, const Option& op)
{ {
if(op->get(PREF_INPUT_FILE) == "-") { if(op.get(PREF_INPUT_FILE) == "-") {
createRequestGroupForUriList(result, op, std::cin); createRequestGroupForUriList(result, op, std::cin);
} else { } else {
if(!File(op->get(PREF_INPUT_FILE)).isFile()) { if(!File(op.get(PREF_INPUT_FILE)).isFile()) {
throw FatalException throw FatalException
(StringFormat(EX_FILE_OPEN, op->get(PREF_INPUT_FILE).c_str(), (StringFormat(EX_FILE_OPEN, op.get(PREF_INPUT_FILE).c_str(),
"No such file").str()); "No such file").str());
} }
std::ifstream f(op->get(PREF_INPUT_FILE).c_str(), std::ios::binary); std::ifstream f(op.get(PREF_INPUT_FILE).c_str(), std::ios::binary);
createRequestGroupForUriList(result, op, f); createRequestGroupForUriList(result, op, f);
} }
} }

View File

@ -51,7 +51,7 @@ class Option;
// Create RequestGroup object using torrent file specified by torrent-file // Create RequestGroup object using torrent file specified by torrent-file
// option. In this function, force-sequential is ignored. // option. In this function, force-sequential is ignored.
void createRequestGroupForBitTorrent void createRequestGroupForBitTorrent
(std::deque<SharedHandle<RequestGroup> >& result, Option* op, (std::deque<SharedHandle<RequestGroup> >& result, const Option& op,
const std::deque<std::string>& uris); const std::deque<std::string>& uris);
#endif // ENABLE_BITTORRENT #endif // ENABLE_BITTORRENT
@ -59,7 +59,7 @@ void createRequestGroupForBitTorrent
// Create RequestGroup objects using Metalink file specified by metalink-file // Create RequestGroup objects using Metalink file specified by metalink-file
// option. // option.
void createRequestGroupForMetalink void createRequestGroupForMetalink
(std::deque<SharedHandle<RequestGroup> >& result, Option* op); (std::deque<SharedHandle<RequestGroup> >& result, const Option& op);
#endif // ENABLE_METALINK #endif // ENABLE_METALINK
// Create RequestGroup objects from reading file specified by input-file option. // Create RequestGroup objects from reading file specified by input-file option.
@ -68,11 +68,11 @@ void createRequestGroupForMetalink
// The additional out and dir options can be specified after each line of URIs. // The additional out and dir options can be specified after each line of URIs.
// This optional line must start with white space(s). // This optional line must start with white space(s).
void createRequestGroupForUriList void createRequestGroupForUriList
(std::deque<SharedHandle<RequestGroup> >& result, Option* op); (std::deque<SharedHandle<RequestGroup> >& result, const Option& op);
// Create RequestGroup object using provided uris. // Create RequestGroup object using provided uris.
void createRequestGroupForUri void createRequestGroupForUri
(std::deque<SharedHandle<RequestGroup> >& result, Option* op, (std::deque<SharedHandle<RequestGroup> >& result, const Option& op,
const std::deque<std::string>& uris); const std::deque<std::string>& uris);
} // namespace aria2 } // namespace aria2

View File

@ -115,10 +115,10 @@ static void showTorrentFile(const std::string& uri)
#endif // ENABLE_BITTORRENT #endif // ENABLE_BITTORRENT
#ifdef ENABLE_METALINK #ifdef ENABLE_METALINK
static void showMetalinkFile(const std::string& uri, const Option* op) static void showMetalinkFile(const std::string& uri, const Option& op)
{ {
std::deque<SharedHandle<MetalinkEntry> > metalinkEntries; std::deque<SharedHandle<MetalinkEntry> > metalinkEntries;
MetalinkHelper::parseAndQuery(metalinkEntries, uri, op); MetalinkHelper::parseAndQuery(metalinkEntries, uri, &op);
std::deque<SharedHandle<FileEntry> > fileEntries; std::deque<SharedHandle<FileEntry> > fileEntries;
MetalinkEntry::toFileEntry(fileEntries, metalinkEntries); MetalinkEntry::toFileEntry(fileEntries, metalinkEntries);
Util::toStream(std::cout, fileEntries); Util::toStream(std::cout, fileEntries);
@ -127,7 +127,7 @@ static void showMetalinkFile(const std::string& uri, const Option* op)
#endif // ENABLE_METALINK #endif // ENABLE_METALINK
#if defined ENABLE_BITTORRENT || defined ENABLE_METALINK #if defined ENABLE_BITTORRENT || defined ENABLE_METALINK
static void showFiles(const std::deque<std::string>& uris, const Option* op) static void showFiles(const std::deque<std::string>& uris, const Option& op)
{ {
ProtocolDetector dt; ProtocolDetector dt;
for(std::deque<std::string>::const_iterator i = uris.begin(); for(std::deque<std::string>::const_iterator i = uris.begin();
@ -210,7 +210,7 @@ DownloadResult::RESULT main(int argc, char* argv[])
showTorrentFile(op.get(PREF_TORRENT_FILE)); showTorrentFile(op.get(PREF_TORRENT_FILE));
return exitStatus; return exitStatus;
} else { } else {
createRequestGroupForBitTorrent(requestGroups, &op, args); createRequestGroupForBitTorrent(requestGroups, op, args);
} }
} }
else else
@ -218,22 +218,22 @@ DownloadResult::RESULT main(int argc, char* argv[])
#ifdef ENABLE_METALINK #ifdef ENABLE_METALINK
if(!op.blank(PREF_METALINK_FILE)) { if(!op.blank(PREF_METALINK_FILE)) {
if(op.get(PREF_SHOW_FILES) == V_TRUE) { if(op.get(PREF_SHOW_FILES) == V_TRUE) {
showMetalinkFile(op.get(PREF_METALINK_FILE), &op); showMetalinkFile(op.get(PREF_METALINK_FILE), op);
return exitStatus; return exitStatus;
} else { } else {
createRequestGroupForMetalink(requestGroups, &op); createRequestGroupForMetalink(requestGroups, op);
} }
} }
else else
#endif // ENABLE_METALINK #endif // ENABLE_METALINK
if(!op.blank(PREF_INPUT_FILE)) { if(!op.blank(PREF_INPUT_FILE)) {
createRequestGroupForUriList(requestGroups, &op); createRequestGroupForUriList(requestGroups, op);
#if defined ENABLE_BITTORRENT || defined ENABLE_METALINK #if defined ENABLE_BITTORRENT || defined ENABLE_METALINK
} else if(op.get(PREF_SHOW_FILES) == V_TRUE) { } else if(op.get(PREF_SHOW_FILES) == V_TRUE) {
showFiles(args, &op); showFiles(args, op);
#endif // ENABLE_METALINK || ENABLE_METALINK #endif // ENABLE_METALINK || ENABLE_METALINK
} else { } else {
createRequestGroupForUri(requestGroups, &op, args); createRequestGroupForUri(requestGroups, op, args);
} }
if(requestGroups.empty()) { if(requestGroups.empty()) {

View File

@ -73,7 +73,7 @@ void DownloadHelperTest::testCreateRequestGroupForUri()
{ {
std::deque<SharedHandle<RequestGroup> > result; std::deque<SharedHandle<RequestGroup> > result;
createRequestGroupForUri(result, &op, uris); createRequestGroupForUri(result, op, uris);
CPPUNIT_ASSERT_EQUAL((size_t)1, result.size()); CPPUNIT_ASSERT_EQUAL((size_t)1, result.size());
SharedHandle<RequestGroup> group = result[0]; SharedHandle<RequestGroup> group = result[0];
@ -93,7 +93,7 @@ void DownloadHelperTest::testCreateRequestGroupForUri()
{ {
std::deque<SharedHandle<RequestGroup> > result; std::deque<SharedHandle<RequestGroup> > result;
createRequestGroupForUri(result, &op, uris); createRequestGroupForUri(result, op, uris);
CPPUNIT_ASSERT_EQUAL((size_t)1, result.size()); CPPUNIT_ASSERT_EQUAL((size_t)1, result.size());
SharedHandle<RequestGroup> group = result[0]; SharedHandle<RequestGroup> group = result[0];
@ -112,7 +112,7 @@ void DownloadHelperTest::testCreateRequestGroupForUri()
{ {
std::deque<SharedHandle<RequestGroup> > result; std::deque<SharedHandle<RequestGroup> > result;
createRequestGroupForUri(result, &op, uris); createRequestGroupForUri(result, op, uris);
CPPUNIT_ASSERT_EQUAL((size_t)1, result.size()); CPPUNIT_ASSERT_EQUAL((size_t)1, result.size());
SharedHandle<RequestGroup> group = result[0]; SharedHandle<RequestGroup> group = result[0];
@ -128,7 +128,7 @@ void DownloadHelperTest::testCreateRequestGroupForUri()
{ {
std::deque<SharedHandle<RequestGroup> > result; std::deque<SharedHandle<RequestGroup> > result;
createRequestGroupForUri(result, &op, uris); createRequestGroupForUri(result, op, uris);
CPPUNIT_ASSERT_EQUAL((size_t)3, result.size()); CPPUNIT_ASSERT_EQUAL((size_t)3, result.size());
@ -164,7 +164,7 @@ void DownloadHelperTest::testCreateRequestGroupForUri_parameterized()
{ {
std::deque<SharedHandle<RequestGroup> > result; std::deque<SharedHandle<RequestGroup> > result;
createRequestGroupForUri(result, &op, uris); createRequestGroupForUri(result, op, uris);
CPPUNIT_ASSERT_EQUAL((size_t)1, result.size()); CPPUNIT_ASSERT_EQUAL((size_t)1, result.size());
SharedHandle<RequestGroup> group = result[0]; SharedHandle<RequestGroup> group = result[0];
@ -201,7 +201,7 @@ void DownloadHelperTest::testCreateRequestGroupForUri_BitTorrent()
{ {
std::deque<SharedHandle<RequestGroup> > result; std::deque<SharedHandle<RequestGroup> > result;
createRequestGroupForUri(result, &op, uris); createRequestGroupForUri(result, op, uris);
CPPUNIT_ASSERT_EQUAL((size_t)2, result.size()); CPPUNIT_ASSERT_EQUAL((size_t)2, result.size());
SharedHandle<RequestGroup> group = result[0]; SharedHandle<RequestGroup> group = result[0];
@ -251,7 +251,7 @@ void DownloadHelperTest::testCreateRequestGroupForUri_Metalink()
{ {
std::deque<SharedHandle<RequestGroup> > result; std::deque<SharedHandle<RequestGroup> > result;
createRequestGroupForUri(result, &op, uris); createRequestGroupForUri(result, op, uris);
// group1: http://alpha/file, ... // group1: http://alpha/file, ...
// group2-7: 6 file entry in Metalink and 1 torrent file download // group2-7: 6 file entry in Metalink and 1 torrent file download
@ -300,7 +300,7 @@ void DownloadHelperTest::testCreateRequestGroupForUriList()
std::deque<SharedHandle<RequestGroup> > result; std::deque<SharedHandle<RequestGroup> > result;
createRequestGroupForUriList(result, &op); createRequestGroupForUriList(result, op);
CPPUNIT_ASSERT_EQUAL((size_t)2, result.size()); CPPUNIT_ASSERT_EQUAL((size_t)2, result.size());
@ -341,7 +341,7 @@ void DownloadHelperTest::testCreateRequestGroupForBitTorrent()
{ {
std::deque<SharedHandle<RequestGroup> > result; std::deque<SharedHandle<RequestGroup> > result;
createRequestGroupForBitTorrent(result, &op, auxURIs); createRequestGroupForBitTorrent(result, op, auxURIs);
CPPUNIT_ASSERT_EQUAL((size_t)1, result.size()); CPPUNIT_ASSERT_EQUAL((size_t)1, result.size());
@ -361,7 +361,7 @@ void DownloadHelperTest::testCreateRequestGroupForBitTorrent()
// no URIs are given // no URIs are given
std::deque<SharedHandle<RequestGroup> > result; std::deque<SharedHandle<RequestGroup> > result;
std::deque<std::string> emptyURIs; std::deque<std::string> emptyURIs;
createRequestGroupForBitTorrent(result, &op, emptyURIs); createRequestGroupForBitTorrent(result, op, emptyURIs);
CPPUNIT_ASSERT_EQUAL((size_t)1, result.size()); CPPUNIT_ASSERT_EQUAL((size_t)1, result.size());
SharedHandle<RequestGroup> group = result[0]; SharedHandle<RequestGroup> group = result[0];
@ -373,7 +373,7 @@ void DownloadHelperTest::testCreateRequestGroupForBitTorrent()
{ {
std::deque<SharedHandle<RequestGroup> > result; std::deque<SharedHandle<RequestGroup> > result;
createRequestGroupForBitTorrent(result, &op, auxURIs); createRequestGroupForBitTorrent(result, op, auxURIs);
// See --force-requencial is ignored // See --force-requencial is ignored
CPPUNIT_ASSERT_EQUAL((size_t)1, result.size()); CPPUNIT_ASSERT_EQUAL((size_t)1, result.size());
@ -393,7 +393,7 @@ void DownloadHelperTest::testCreateRequestGroupForMetalink()
{ {
std::deque<SharedHandle<RequestGroup> > result; std::deque<SharedHandle<RequestGroup> > result;
createRequestGroupForMetalink(result, &op); createRequestGroupForMetalink(result, op);
#ifdef ENABLE_BITTORRENT #ifdef ENABLE_BITTORRENT
CPPUNIT_ASSERT_EQUAL((size_t)6, result.size()); CPPUNIT_ASSERT_EQUAL((size_t)6, result.size());