2 // ========================================================================
3 // Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd.
4 // ------------------------------------------------------------------------
5 // All rights reserved. This program and the accompanying materials
6 // are made available under the terms of the Eclipse Public License v1.0
7 // and Apache License v2.0 which accompanies this distribution.
9 // The Eclipse Public License is available at
10 // http://www.eclipse.org/legal/epl-v10.html
12 // The Apache License v2.0 is available at
13 // http://www.opensource.org/licenses/apache2.0.php
15 // You may elect to redistribute this code under either of these licenses.
16 // ========================================================================
19 package org.eclipse.jetty.server;
21 import java.io.IOException;
22 import java.io.Writer;
24 import org.eclipse.jetty.util.ByteArrayOutputStream2;
29 public abstract class HttpWriter extends Writer
31 public static final int MAX_OUTPUT_CHARS = 512;
33 final HttpOutput _out;
34 final ByteArrayOutputStream2 _bytes;
37 /* ------------------------------------------------------------ */
38 public HttpWriter(HttpOutput out)
41 _chars=new char[MAX_OUTPUT_CHARS];
42 _bytes = new ByteArrayOutputStream2(MAX_OUTPUT_CHARS);
45 /* ------------------------------------------------------------ */
47 public void close() throws IOException
52 /* ------------------------------------------------------------ */
54 public void flush() throws IOException
59 /* ------------------------------------------------------------ */
61 public void write (String s,int offset, int length) throws IOException
63 while (length > MAX_OUTPUT_CHARS)
65 write(s, offset, MAX_OUTPUT_CHARS);
66 offset += MAX_OUTPUT_CHARS;
67 length -= MAX_OUTPUT_CHARS;
70 s.getChars(offset, offset + length, _chars, 0);
71 write(_chars, 0, length);
74 /* ------------------------------------------------------------ */
76 public void write (char[] s,int offset, int length) throws IOException
78 throw new AbstractMethodError();