TableFileTypeP TableFileHandlerBase::getFileType(const std::string& FileExtension, UInt32 Flags) { FileTypeMap::const_iterator SearchItor(_SuffixTypeMap.find(FileExtension)); if(SearchItor != _SuffixTypeMap.end()) { for(FileTypeVector::const_iterator VecItor(SearchItor->second.begin()) ; VecItor != SearchItor->second.end() ; ++VecItor) { if((*VecItor)->getFlags() & Flags) { return (*VecItor); } } return NULL; } else { return NULL; } }
std::vector<std::string> FCFileHandlerBase::getSuffixList(UInt32 flags) const { std::vector<std::string> FileTypesResult; for(FileTypeMap::const_iterator MapItor(_SuffixTypeMap.begin()) ; MapItor != _SuffixTypeMap.end() ; ++MapItor) { for(FileTypeVector::const_iterator VecItor(MapItor->second.begin()) ; VecItor != MapItor->second.end() ; ++VecItor) { if((*VecItor)->getFlags() & flags) { std::vector<std::string> Suffixes((*VecItor)->getSuffixList()); for(std::vector<std::string>::const_iterator SuffixItor(Suffixes.begin()) ; SuffixItor<Suffixes.end() ; ++SuffixItor) { FileTypesResult.push_back(*SuffixItor); } } } } return FileTypesResult; }
FCFileTypeP FCFileHandlerBase::getFileType(const std::string& FileExtension, UInt32 Flags) { //Check if this is a FileName or just the file extension std::string FileExtensionLowerCase(FileExtension); boost::algorithm::to_lower(FileExtensionLowerCase); FileTypeMap::const_iterator SearchItor(_SuffixTypeMap.find(FileExtensionLowerCase)); if(SearchItor != _SuffixTypeMap.end()) { for(FileTypeVector::const_iterator VecItor(SearchItor->second.begin()) ; VecItor != SearchItor->second.end() ; ++VecItor) { if((*VecItor)->getFlags() & Flags) { return (*VecItor); } } return NULL; } else { return NULL; } }