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.handler.timeout;
    17
    18  import org.jboss.netty.channel.Channel;
    19  import org.jboss.netty.channel.ChannelEvent;
    20  import org.jboss.netty.channel.ChannelHandlerContext;
    21  import org.jboss.netty.channel.SimpleChannelHandler;
    22
    23  /**
    24   * An extended {@link SimpleChannelHandler} that adds the handler method for
    25   * an {@link IdleStateEvent}.
    26   * @apiviz.uses org.jboss.netty.handler.timeout.IdleStateEvent
    27   */
    28  public class IdleStateAwareChannelHandler extends SimpleChannelHandler {
    29
    30      /**
    31       * Creates a new instance.
    32       */
    33      public IdleStateAwareChannelHandler() {
    34          super();
    35      }
    36
    37      @Override
    38      public void handleUpstream(ChannelHandlerContext ctx, ChannelEvent e)
    39              throws Exception {
    40          if (e instanceof IdleStateEvent) {
    41              channelIdle(ctx, (IdleStateEvent) e);
    42          } else {
    43              super.handleUpstream(ctx, e);
    44          }
    45      }
    46
    47      /**
    48       * Invoked when a {@link Channel} has been idle for a while.
    49       */
    50      public void channelIdle(ChannelHandlerContext ctx, IdleStateEvent e) throws Exception {
    51          ctx.sendUpstream(e);
    52      }
    53  }