示例#1
0
VFS_BOOL VFS_Archive_GetUsedFilters( const VFS_String& strArchiveFileName, VFS_FilterNameList& FilterNames )
{
    // Get Information about that Archive.
    VFS_EntityInfo Info;
    if( !VFS_Archive_GetInfo( strArchiveFileName, Info ) )
        return VFS_FALSE;

    // Check if the Archive isn't open yet.
    if( GetOpenArchives().find( ToLower( Info.strPath ) ) == GetOpenArchives().end() )
    {
        // Open the Archive.
        CArchive* pArchive = CArchive::Open( ToLower( Info.strPath ) );
        if( pArchive == NULL )
            return VFS_FALSE;

        // Add the Archive to the Open Archives List.
        GetOpenArchives()[ Info.strPath ] = pArchive;
    }

    // Get the Filter Names List.
    FilterList Filters = GetOpenArchives()[ ToLower( Info.strPath ) ]->GetHeader()->Filters;
    FilterNames.clear();
    for( FilterList::const_iterator iter = Filters.begin(); iter != Filters.end(); iter++ )
    {
        FilterNames.push_back( ( *iter )->GetName() );
    }

    return VFS_TRUE;
}
void tarch::logging::CommandLineLogger::addFilterListEntries( const FilterList&    entries) {
  for (FilterList::const_iterator p = entries.begin(); p!=entries.end(); p++ ) {
    addFilterListEntry(*p);
  }
}