package org.osmdroid.tileprovider.modules;
import java.io.File;
import java.io.InputStream;
import java.util.Set;
import org.osmdroid.tileprovider.MapTile;
import org.osmdroid.tileprovider.tilesource.ITileSource;
/**
* The IArchiveFile is primary used to load tiles from a file archive. Generally, this should only
* be used for archives that require little to no computation in order to provide a given tile.
*
* For cases thereby the tiles are rendered or manipulated (such as from another projection)
* @see MapTileModuleProviderBase
*/
public interface IArchiveFile {
void init(File pFile) throws Exception;
/**
* Get the input stream for the requested tile.
* @return the input stream, or null if the archive doesn't contain an entry for the requested tile
*/
InputStream getInputStream(ITileSource tileSource, MapTile tile);
/**
* Closes the archive file and releases resources.
*/
void close();
/**
* returns a list of tile source names that are available in the archive, if supported
* @since 5.0
* @return
*/
public Set<String> getTileSources();
}