+package org.opendaylight.openflowjava.protocol.impl.core;\r
+\r
+import java.util.concurrent.TimeUnit;\r
+\r
+import io.netty.channel.ChannelHandlerContext;\r
+import io.netty.handler.timeout.IdleState;\r
+import io.netty.handler.timeout.IdleStateEvent;\r
+import io.netty.handler.timeout.IdleStateHandler;\r
+\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.system.rev130927.SwitchIdleEventBuilder;\r
+import org.slf4j.Logger;\r
+import org.slf4j.LoggerFactory;\r
+\r
+public class IdleHandler extends IdleStateHandler{\r
+ \r
+ public IdleHandler(long readerIdleTime, long writerIdleTime,\r
+ long allIdleTime, TimeUnit unit) {\r
+ super(readerIdleTime, writerIdleTime, allIdleTime, unit);\r
+ }\r
+\r
+\r
+ private static final Logger LOGGER = LoggerFactory.getLogger(IdleHandler.class);\r
+\r
+ \r
+ @Override\r
+ protected void channelIdle(ChannelHandlerContext ctx, IdleStateEvent evt)\r
+ throws Exception {\r
+ if ((evt.state() == IdleState.READER_IDLE) && (evt.isFirst())) {\r
+ LOGGER.info("Switch idle");\r
+ SwitchIdleEventBuilder builder = new SwitchIdleEventBuilder();\r
+ builder.setInfo("Switch idle");\r
+ ctx.fireChannelRead(builder.build());\r
+ }\r
+ }\r
+\r
+}\r