/* (c) 2014 Open Source Geospatial Foundation - all rights reserved
* (c) 2001 - 2013 OpenPlans
* This code is licensed under the GPL 2.0 license, available at the root
* application directory.
*/
package org.geoserver.ows;
import javax.servlet.http.HttpServletResponse;
/**
* Factory used to create an {@link ServiceStrategy} for a request.
* <p>
* An {@link ServiceStrategy} is used to provide different modes of writing
* output.
* </p>
* <p>
* Examples include a "safe mode", in which the entire response is buffered
* before being output, as to ensure no errors occur during the writing
* of a response. Another example may include a "speed mode" where data is
* written directly to the output with no buffering.
* </p>
* @author Justin Deoliveira, The Open Planning Project, jdeolive@openplans.org
*
*/
public interface OutputStrategyFactory {
/**
* Creates an output strategy for a response.
*
* @param response The response which contains the live output stream in
* which to write data to.
*
* @return An output strategy to write output to.
*/
ServiceStrategy createOutputStrategy(HttpServletResponse response);
}