1 /* 2 * Copyright 2012 The Netty Project 3 * 4 * The Netty Project licenses this file to you under the Apache License, 5 * version 2.0 (the "License"); you may not use this file except in compliance 6 * with the 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.spdy; 17 18 import org.jboss.netty.channel.ChannelDownstreamHandler; 19 import org.jboss.netty.channel.ChannelEvent; 20 import org.jboss.netty.channel.ChannelHandlerContext; 21 import org.jboss.netty.channel.ChannelUpstreamHandler; 22 23 /** 24 * A combination of {@link SpdyFrameDecoder} and {@link SpdyFrameEncoder}. 25 * @apiviz.has org.jboss.netty.handler.codec.spdy.SpdyFrameDecoder 26 * @apiviz.has org.jboss.netty.handler.codec.spdy.SpdyFrameEncoder 27 */ 28 public class SpdyFrameCodec implements ChannelUpstreamHandler, 29 ChannelDownstreamHandler { 30 31 private final SpdyFrameDecoder decoder; 32 private final SpdyFrameEncoder encoder; 33 34 /** 35 * Creates a new instance with the default decoder and encoder options 36 * ({@code version (2)}, {@code maxChunkSize (8192)}, 37 * {@code maxHeaderSize (16384)}, {@code compressionLevel (6)}, 38 * {@code windowBits (15)}, and {@code memLevel (8)}). 39 */ 40 @Deprecated 41 public SpdyFrameCodec() { 42 this(2); 43 } 44 45 /** 46 * Creates a new instance with the specified {@code version} and 47 * the default decoder and encoder options 48 * ({@code maxChunkSize (8192)}, {@code maxHeaderSize (16384)}, 49 * {@code compressionLevel (6)}, {@code windowBits (15)}, 50 * and {@code memLevel (8)}). 51 */ 52 public SpdyFrameCodec(int version) { 53 this(version, 8192, 16384, 6, 15, 8); 54 } 55 56 /** 57 * Creates a new instance with the specified decoder and encoder options. 58 */ 59 public SpdyFrameCodec( 60 int version, int maxChunkSize, int maxHeaderSize, 61 int compressionLevel, int windowBits, int memLevel) { 62 decoder = new SpdyFrameDecoder(version, maxChunkSize, maxHeaderSize); 63 encoder = new SpdyFrameEncoder(version, compressionLevel, windowBits, memLevel); 64 } 65 66 public void handleUpstream(ChannelHandlerContext ctx, ChannelEvent e) 67 throws Exception { 68 decoder.handleUpstream(ctx, e); 69 } 70 71 public void handleDownstream(ChannelHandlerContext ctx, ChannelEvent e) 72 throws Exception { 73 encoder.handleDownstream(ctx, e); 74 } 75 }