1 /* Copyright (C)2013 Pantheon Technologies, s.r.o. All rights reserved. */
2 package org.opendaylight.openflowjava.protocol.impl.core;
4 import java.util.concurrent.TimeUnit;
6 import io.netty.channel.ChannelHandlerContext;
7 import io.netty.handler.timeout.IdleState;
8 import io.netty.handler.timeout.IdleStateEvent;
9 import io.netty.handler.timeout.IdleStateHandler;
11 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.system.rev130927.SwitchIdleEventBuilder;
12 import org.slf4j.Logger;
13 import org.slf4j.LoggerFactory;
16 * Detects idle state of switch and informs upper layers
17 * @author michal.polkorab
19 public class IdleHandler extends IdleStateHandler{
21 private static final Logger LOGGER = LoggerFactory.getLogger(IdleHandler.class);
24 * @param readerIdleTime
25 * @param writerIdleTime
29 public IdleHandler(long readerIdleTime, long writerIdleTime,
30 long allIdleTime, TimeUnit unit) {
31 super(readerIdleTime, writerIdleTime, allIdleTime, unit);
35 protected void channelIdle(ChannelHandlerContext ctx, IdleStateEvent evt)
37 if ((evt.state() == IdleState.READER_IDLE) && (evt.isFirst())) {
38 LOGGER.info("Switch idle");
39 SwitchIdleEventBuilder builder = new SwitchIdleEventBuilder();
40 builder.setInfo("Switch idle");
41 ctx.fireChannelRead(builder.build());