aca21120effe8e472dbc9ec12388c9a9187cf672
[openflowplugin.git] / openflowplugin-api / src / main / java / org / opendaylight / openflowplugin / api / openflow / md / queue / WaterMarkListenerImpl.java
1 package org.opendaylight.openflowplugin.api.openflow.md.queue;
2
3 import com.google.common.base.Preconditions;
4 import org.opendaylight.openflowjava.protocol.api.connection.ConnectionAdapter;
5 import org.slf4j.Logger;
6 import org.slf4j.LoggerFactory;
7
8 public class WaterMarkListenerImpl implements WaterMarkListener {
9
10     private static final Logger LOG = LoggerFactory
11             .getLogger(WaterMarkListenerImpl.class);
12
13     private ConnectionAdapter connectionAdapter;
14
15     public WaterMarkListenerImpl(ConnectionAdapter connectionAdapter) {
16         this.connectionAdapter = Preconditions.checkNotNull(connectionAdapter);
17     }
18
19     /*
20      * (non-Javadoc)
21      *
22      * @see org.opendaylight.openflowplugin.api.openflow.md.queue.QueueListener#
23      * onHighWaterMark
24      * (org.opendaylight.openflowjava.protocol.api.connection.ConnectionAdapter)
25      */
26     @Override
27     public void onHighWaterMark() {
28         connectionAdapter.setAutoRead(false);
29         LOG.debug("AutoRead is set on false: {}", connectionAdapter.getRemoteAddress());
30     }
31
32     /*
33      * (non-Javadoc)
34      *
35      * @see org.opendaylight.openflowplugin.api.openflow.md.queue.QueueListener#
36      * onLowWaterMark
37      * (org.opendaylight.openflowjava.protocol.api.connection.ConnectionAdapter)
38      */
39     @Override
40     public void onLowWaterMark() {
41         connectionAdapter.setAutoRead(true);
42         LOG.debug("AutoRead is set on true: {}", connectionAdapter.getRemoteAddress());
43     }
44 }