Netty Replicator - improve the reconnection and keepalive mechanisms
[mdsal.git] / replicate / mdsal-replicate-netty / src / main / java / org / opendaylight / mdsal / replicate / netty / SinkKeepaliveHandler.java
1 /*
2  * Copyright (c) 2020 PANTHEON.tech, s.r.o. and others.  All rights reserved.
3  *
4  * This program and the accompanying materials are made available under the
5  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6  * and is available at http://www.eclipse.org/legal/epl-v10.html
7  */
8 package org.opendaylight.mdsal.replicate.netty;
9
10 import io.netty.channel.ChannelHandlerContext;
11 import io.netty.handler.timeout.IdleStateEvent;
12 import org.slf4j.Logger;
13 import org.slf4j.LoggerFactory;
14
15 final class SinkKeepaliveHandler extends AbstractKeepaliveHandler {
16     private static final Logger LOG = LoggerFactory.getLogger(SinkKeepaliveHandler.class);
17
18     @Override
19     public void userEventTriggered(final ChannelHandlerContext ctx, final Object evt) {
20         if (evt instanceof IdleStateEvent) {
21             LOG.debug("IdleStateEvent received. Closing channel {}.", ctx.channel());
22             ctx.close();
23         } else {
24             ctx.fireUserEventTriggered(evt);
25         }
26     }
27 }