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.http2;
17
18 import static org.jboss.netty.handler.codec.http2.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: 619 $, $Date: 2010-11-11 20:30:06 +0100 (jeu., 11 nov. 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 }