/*******************************************************************************
* Copyright (c) 2012 Association for Decentralized Information Management
* in Industry THTH ry.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* VTT Technical Research Centre of Finland - initial API and implementation
*******************************************************************************/
package org.simantics.maps.tile;
/**
* Interface for queue'ing a set of map tile requests. The tiles will be
* requested from the provider that has been set for the queue.
*
* @author Tuukka Lehtonen
*/
public interface ITileJobQueue {
/**
* Add a request for the specified tile with the specified listener. The
* listener will be notified depending on how the job progresses.
*
* @param key the requested tile
* @param listener the listener that will be notified of request result
*/
public void addJob(TileKey key, ITileListener listener);
/**
* Used for removing jobs from the job queue by using the specified filter.
* Any not-started tile requests for which the filter returns
* false
will be removed from the queue.
*
* @param filter filter that shall return false
for tile
* requests to be removed from the queue
*/
public void filterQueries(IFilter filter);
/**
* Sets the tile provider used by this queue to perform tile requests.
*
* @param provider the provider to use from now on
*/
public void setTileProvider(ITileProvider provider);
}