View Javadoc

    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.example.localtime;
    17
    18  import static org.jboss.netty.channel.Channels.*;
    19
    20  import org.jboss.netty.channel.ChannelPipeline;
    21  import org.jboss.netty.channel.ChannelPipelineFactory;
    22  import org.jboss.netty.handler.codec.protobuf.ProtobufDecoder;
    23  import org.jboss.netty.handler.codec.protobuf.ProtobufEncoder;
    24  import org.jboss.netty.handler.codec.protobuf.ProtobufVarint32FrameDecoder;
    25  import org.jboss.netty.handler.codec.protobuf.ProtobufVarint32LengthFieldPrepender;
    26
    27  public class LocalTimeServerPipelineFactory implements ChannelPipelineFactory {
    28
    29      public ChannelPipeline getPipeline() throws Exception {
    30          ChannelPipeline p = pipeline();
    31          p.addLast("frameDecoder", new ProtobufVarint32FrameDecoder());
    32          p.addLast("protobufDecoder", new ProtobufDecoder(LocalTimeProtocol.Locations.getDefaultInstance()));
    33
    34          p.addLast("frameEncoder", new ProtobufVarint32LengthFieldPrepender());
    35          p.addLast("protobufEncoder", new ProtobufEncoder());
    36
    37          p.addLast("handler", new LocalTimeServerHandler());
    38          return p;
    39      }
    40  }