View Javadoc

    1   /*
    2    * Copyright 2009 Red Hat, Inc.
    3    *
    4    * Red Hat licenses this file to you under the Apache License, version 2.0
    5    * (the "License"); you may not use this file except in compliance with the
    6    * License.  You may obtain a copy of the License at:
    7    *
    8    *    http://www.apache.org/licenses/LICENSE-2.0
    9    *
    10   * Unless required by applicable law or agreed to in writing, software
    11   * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
    12   * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
    13   * License for the specific language governing permissions and limitations
    14   * under the License.
    15   */
    16  package org.jboss.netty.handler.codec.http;
    17
    18  import static org.jboss.netty.handler.codec.http.HttpCodecUtil.*;
    19
    20  import org.jboss.netty.buffer.ChannelBuffer;
    21
    22  /**
    23   * Encodes an {@link HttpResponse} or an {@link HttpChunk} into
    24   * a {@link ChannelBuffer}.
    25   *
    26   * @author <a href="http://www.jboss.org/netty/">The Netty Project</a>
    27   * @author Andy Taylor (andy.taylor@jboss.org)
    28   * @author <a href="http://gleamynode.net/">Trustin Lee</a>
    29   * @version $Rev: 2118 $, $Date: 2010-02-01 17:32:18 +0900 (Mon, 01 Feb 2010) $
    30   */
    31  public class HttpResponseEncoder extends HttpMessageEncoder {
    32
    33      /**
    34       * Creates a new instance.
    35       */
    36      public HttpResponseEncoder() {
    37          super();
    38      }
    39
    40      @Override
    41      protected void encodeInitialLine(ChannelBuffer buf, HttpMessage message) throws Exception {
    42          HttpResponse response = (HttpResponse) message;
    43          buf.writeBytes(response.getProtocolVersion().toString().getBytes("ASCII"));
    44          buf.writeByte(SP);
    45          buf.writeBytes(String.valueOf(response.getStatus().getCode()).getBytes("ASCII"));
    46          buf.writeByte(SP);
    47          buf.writeBytes(String.valueOf(response.getStatus().getReasonPhrase()).getBytes("ASCII"));
    48          buf.writeByte(CR);
    49          buf.writeByte(LF);
    50      }
    51  }