Added support for switch idle state
[openflowjava.git] / openflow-protocol-impl / src / main / java / org / opendaylight / openflowjava / protocol / impl / core / IdleHandler.java
1 package org.opendaylight.openflowjava.protocol.impl.core;\r
2 \r
3 import java.util.concurrent.TimeUnit;\r
4 \r
5 import io.netty.channel.ChannelHandlerContext;\r
6 import io.netty.handler.timeout.IdleState;\r
7 import io.netty.handler.timeout.IdleStateEvent;\r
8 import io.netty.handler.timeout.IdleStateHandler;\r
9 \r
10 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.system.rev130927.SwitchIdleEventBuilder;\r
11 import org.slf4j.Logger;\r
12 import org.slf4j.LoggerFactory;\r
13 \r
14 public class IdleHandler extends IdleStateHandler{\r
15     \r
16     public IdleHandler(long readerIdleTime, long writerIdleTime,\r
17             long allIdleTime, TimeUnit unit) {\r
18         super(readerIdleTime, writerIdleTime, allIdleTime, unit);\r
19     }\r
20 \r
21 \r
22     private static final Logger LOGGER = LoggerFactory.getLogger(IdleHandler.class);\r
23 \r
24     \r
25     @Override\r
26     protected void channelIdle(ChannelHandlerContext ctx, IdleStateEvent evt)\r
27             throws Exception {\r
28         if ((evt.state() == IdleState.READER_IDLE) && (evt.isFirst())) {\r
29             LOGGER.info("Switch idle");\r
30             SwitchIdleEventBuilder builder = new SwitchIdleEventBuilder();\r
31             builder.setInfo("Switch idle");\r
32             ctx.fireChannelRead(builder.build());\r
33         }\r
34     }\r
35 \r
36 }\r