/* (c) 2014 Open Source Geospatial Foundation - all rights reserved * This code is licensed under the GPL 2.0 license, available at the root * application directory. */ package org.geoserver.flow; import java.util.List; import org.geoserver.ows.Request; /** * Sources of FlowContoller for the {@link ControlFlowCallback} * * @author Andrea Aime - GeoSolutions * */ public interface FlowControllerProvider { /** * Returns the set of flow controllers to be used in the {@link ControlFlowCallback}, for the * given request. It is up to the FlowControllerProvider to manage the lifecycle of flow * controllers, and make sure they are not getting re-created on a request per request basis. * The flow controllers will be applied in the order they are returned */ List<FlowController> getFlowControllers(Request request) throws Exception; /** * Maximum time the request can be held in queue before giving up to it. * * @return The maximum time in milliseconds. Use 0 or a negative number for no timeout */ long getTimeout(Request request); }