/* */ #include "Metalinker.h" #include Metalinker::Metalinker() { } Metalinker::~Metalinker() { for_each(entries.begin(), entries.end(), Deleter()); } class EntryQuery { private: string version; string language; string os; public: EntryQuery(const string& version, const string& language, const string& os):version(version), language(language), os(os) {} bool operator()(const MetalinkEntry* entry) { if(!version.empty()) { if(version != entry->version) { return false; } } if(!language.empty()) { if(language != entry->language) { return false; } } if(!os.empty()) { if(os != entry->os) { return false; } } return true; } }; MetalinkEntry* Metalinker::queryEntry(const string& version, const string& language, const string& os) const { MetalinkEntries::const_iterator itr = find_if(entries.begin(), entries.end(), EntryQuery(version, language, os)); if(itr == entries.end()) { return NULL; } else { return *itr; } }