/* */ #include "MetalinkHelper.h" #include "Option.h" #include "MetalinkEntry.h" #include "MetalinkProcessorFactory.h" #include "MetalinkParserStateMachine.h" #include "Metalinker.h" #include "MetalinkProcessor.h" #include "MetalinkProcessorFactory.h" #include "prefs.h" #include "DlAbortEx.h" #include "BinaryStream.h" namespace aria2 { MetalinkHelper::MetalinkHelper() {} MetalinkHelper::~MetalinkHelper() {} void MetalinkHelper::parseAndQuery (std::deque >& result, const std::string& filename, const Option* option) { SharedHandle proc = MetalinkProcessorFactory::newInstance(); SharedHandle metalinker = proc->parseFile(filename); query(result, metalinker, option); } void MetalinkHelper::parseAndQuery (std::deque >& result, const SharedHandle& binaryStream, const Option* option) { SharedHandle proc = MetalinkProcessorFactory::newInstance(); SharedHandle metalinker = proc->parseFromBinaryStream(binaryStream); query(result, metalinker, option); } void MetalinkHelper::query (std::deque >& result, const SharedHandle& metalinker, const Option* option) { if(metalinker->entries.empty()) { throw DlAbortEx("No file entry found. Probably, the metalink file is not configured properly or broken."); } metalinker->queryEntry(result, option->get(PREF_METALINK_VERSION), option->get(PREF_METALINK_LANGUAGE), option->get(PREF_METALINK_OS)); } } // namespace aria2