All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.vfny.geoserver.servlets.BufferStrategy Maven / Gradle / Ivy

The newest version!
/* Copyright (c) 2001 - 2007 TOPP - www.openplans.org. All rights reserved.
 * This code is licensed under the GPL 2.0 license, availible at the root
 * application directory.
 */
package org.vfny.geoserver.servlets;

import org.geoserver.ows.DispatcherOutputStream;
import org.geoserver.ows.ServiceStrategy;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import javax.servlet.http.HttpServletResponse;


/**
 * A safe Service strategy that buffers output until writeTo completes.
 *
 * 

* This strategy wastes memory, for saftey. It represents a middle ground * between SpeedStrategy and FileStrategy *

* * @author jgarnett */ public class BufferStrategy implements ServiceStrategy { public String getId() { return "BUFFER"; } /** DOCUMENT ME! */ ByteArrayOutputStream buffer = null; /** * Provides a ByteArrayOutputStream for writeTo. * * @param response Response being processed. * * @return A ByteArrayOutputStream for writeTo opperation. * * @throws IOException DOCUMENT ME! */ public DispatcherOutputStream getDestination(HttpServletResponse response) throws IOException { buffer = new ByteArrayOutputStream(1024 * 1024); return new DispatcherOutputStream(buffer); } /** * Copies Buffer to Response output output stream. * * @throws IOException If the response outputt stream is unavailable. */ public void flush(HttpServletResponse response) throws IOException { if ((buffer == null) || (response == null)) { return; // should we throw an Exception here } OutputStream out = response.getOutputStream(); buffer.writeTo(out); buffer = null; } /** * Clears the buffer with out writing anything out to response. * * @see org.geoserver.ows.ServiceStrategy#abort() */ public void abort() { buffer = null; } public Object clone() throws CloneNotSupportedException { return new BufferStrategy(); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy