/* */ #include "ContentTypeRequestGroupCriteria.h" #include "RequestGroup.h" #include "util.h" #include "FileEntry.h" #include "DownloadContext.h" namespace aria2 { ContentTypeRequestGroupCriteria::ContentTypeRequestGroupCriteria (const char** contentTypes, const char** extensions) : contentTypes_(contentTypes), extensions_(extensions) {} ContentTypeRequestGroupCriteria::~ContentTypeRequestGroupCriteria() {} bool ContentTypeRequestGroupCriteria::match (const RequestGroup* requestGroup) const { if(requestGroup->getDownloadContext()->getFileEntries().size() != 1) { return false; } for(size_t i = 0; extensions_[i]; ++i) { if(util::iendsWith(requestGroup->getFirstFilePath(), extensions_[i])) { return true; } } for(size_t i = 0; contentTypes_[i]; ++i) { if(util::strieq(requestGroup->getDownloadContext()->getFirstFileEntry()-> getContentType(), contentTypes_[i])) { return true; } } return false; } } // namespace aria2