bug 2446 - High priority (control) queue stop reading from channel if is full
[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 org.opendaylight.openflowjava.protocol.api.connection.ConnectionAdapter;
4 import org.slf4j.Logger;
5 import org.slf4j.LoggerFactory;
6
7 import com.google.common.base.Preconditions;
8
9 public class WaterMarkListenerImpl implements WaterMarkListener {
10
11     private static final Logger LOG = LoggerFactory
12             .getLogger(WaterMarkListenerImpl.class);
13
14     private ConnectionAdapter connectionAdapter;
15
16     public WaterMarkListenerImpl(ConnectionAdapter connectionAdapter) {
17         this.connectionAdapter = Preconditions.checkNotNull(connectionAdapter);
18     }
19
20     /*
21      * (non-Javadoc)
22      * 
23      * @see org.opendaylight.openflowplugin.api.openflow.md.queue.QueueListener#
24      * onHighWaterMark
25      * (org.opendaylight.openflowjava.protocol.api.connection.ConnectionAdapter)
26      */
27     @Override
28     public void onHighWaterMark() {
29         connectionAdapter.setAutoRead(false);
30         LOG.debug("AutoRead is set on false.");
31     }
32
33     /*
34      * (non-Javadoc)
35      * 
36      * @see org.opendaylight.openflowplugin.api.openflow.md.queue.QueueListener#
37      * onLowWaterMark
38      * (org.opendaylight.openflowjava.protocol.api.connection.ConnectionAdapter)
39      */
40     @Override
41     public void onLowWaterMark() {
42         connectionAdapter.setAutoRead(true);
43         LOG.debug("AutoRead is set on true.");
44     }
45 }