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