class PageCacheWarmer implements NeoStoreFileListing.StoreFileProvider {

    synchronized OptionalLong reheat() throws IOException
    {
        if ( stopped )
        {
            return OptionalLong.empty();
        }
        long pagesLoaded = 0;
        List<PagedFile> files = pageCache.listExistingMappings();
        Profile[] existingProfiles = findExistingProfiles( files );
        for ( PagedFile file : files )
        {
            try
            {
                pagesLoaded += reheat( file, existingProfiles );
            }
            catch ( FileIsNotMappedException ignore )
            {
                // The database is allowed to map and unmap files while we are trying to heat it up.
            }
        }
        return OptionalLong.of( pagesLoaded );
    }

      PageCacheWarmer( FileSystemAbstraction fs, PageCache pageCache, JobScheduler scheduler, File databaseDirectory );

}