From 63a23c610a179475e7bf795d91a858665dd3e0e4 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Fri, 28 Feb 2014 13:25:36 +0100 Subject: [PATCH] Take advantage of MultipartTransactionAware Now that we have MultipartTransactionAware as a modeling concept, we can simplify the message tracking code by not having to pass around another boolean. Change-Id: Iebfd03d679122f42d83e68b7d7e5361655162f75 Signed-off-by: Robert Varga --- .../manager/MultipartMessageManager.java | 21 +++++++++-- .../manager/NodeStatisticsHandler.java | 36 +++++++++---------- .../manager/StatisticsListener.java | 18 +++++----- 3 files changed, 45 insertions(+), 30 deletions(-) diff --git a/opendaylight/md-sal/statistics-manager/src/main/java/org/opendaylight/controller/md/statistics/manager/MultipartMessageManager.java b/opendaylight/md-sal/statistics-manager/src/main/java/org/opendaylight/controller/md/statistics/manager/MultipartMessageManager.java index 56b205216f..425a44946e 100644 --- a/opendaylight/md-sal/statistics-manager/src/main/java/org/opendaylight/controller/md/statistics/manager/MultipartMessageManager.java +++ b/opendaylight/md-sal/statistics-manager/src/main/java/org/opendaylight/controller/md/statistics/manager/MultipartMessageManager.java @@ -11,6 +11,7 @@ import java.util.Iterator; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; +import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.transaction.rev131103.MultipartTransactionAware; import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.transaction.rev131103.TransactionAware; import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.transaction.rev131103.TransactionId; @@ -91,7 +92,12 @@ class MultipartMessageManager { txIdTotableIdMap.put(new TxIdEntry(id), Preconditions.checkNotNull(tableId)); } - public Short isExpectedTableTransaction(TransactionAware transaction, Boolean more) { + public Short isExpectedTableTransaction(TransactionAware transaction) { + Boolean more = null; + if (transaction instanceof MultipartTransactionAware) { + more = ((MultipartTransactionAware)transaction).isMoreReplies(); + } + if (!isExpectedTransaction(transaction, more)) { return null; } @@ -109,8 +115,8 @@ class MultipartMessageManager { txIdToRequestTypeMap.put(entry, getExpiryTime()); } - public boolean isExpectedTransaction(TransactionAware transaction, Boolean more) { - TxIdEntry entry = new TxIdEntry(transaction.getTransactionId()); + private boolean isExpectedTransaction(TransactionAware transaction, Boolean more) { + final TxIdEntry entry = new TxIdEntry(transaction.getTransactionId()); if (more != null && more.booleanValue()) { return txIdToRequestTypeMap.containsKey(entry); } else { @@ -118,6 +124,15 @@ class MultipartMessageManager { } } + public boolean isExpectedTransaction(TransactionAware transaction) { + Boolean more = null; + if (transaction instanceof MultipartTransactionAware) { + more = ((MultipartTransactionAware)transaction).isMoreReplies(); + } + + return isExpectedTransaction(transaction, more); + } + private Long getExpiryTime() { return System.nanoTime() + lifetimeNanos; } diff --git a/opendaylight/md-sal/statistics-manager/src/main/java/org/opendaylight/controller/md/statistics/manager/NodeStatisticsHandler.java b/opendaylight/md-sal/statistics-manager/src/main/java/org/opendaylight/controller/md/statistics/manager/NodeStatisticsHandler.java index 6796b4eb87..c4334ab9ff 100644 --- a/opendaylight/md-sal/statistics-manager/src/main/java/org/opendaylight/controller/md/statistics/manager/NodeStatisticsHandler.java +++ b/opendaylight/md-sal/statistics-manager/src/main/java/org/opendaylight/controller/md/statistics/manager/NodeStatisticsHandler.java @@ -137,50 +137,50 @@ public final class NodeStatisticsHandler implements AutoCloseable, FlowCapableCo return dps.beginTransaction(); } - public synchronized void updateGroupDescStats(TransactionAware transaction, Boolean more, List list) { - if (msgManager.isExpectedTransaction(transaction, more)) { + public synchronized void updateGroupDescStats(TransactionAware transaction, List list) { + if (msgManager.isExpectedTransaction(transaction)) { groupDescStats.updateStats(list); } } - public synchronized void updateGroupStats(TransactionAware transaction, Boolean more, List list) { - if (msgManager.isExpectedTransaction(transaction, more)) { + public synchronized void updateGroupStats(TransactionAware transaction, List list) { + if (msgManager.isExpectedTransaction(transaction)) { groupStats.updateStats(list); } } - public synchronized void updateMeterConfigStats(TransactionAware transaction, Boolean more, List list) { - if (msgManager.isExpectedTransaction(transaction, more)) { + public synchronized void updateMeterConfigStats(TransactionAware transaction, List list) { + if (msgManager.isExpectedTransaction(transaction)) { meterConfigStats.updateStats(list); } } - public synchronized void updateMeterStats(TransactionAware transaction, Boolean more, List list) { - if (msgManager.isExpectedTransaction(transaction, more)) { + public synchronized void updateMeterStats(TransactionAware transaction, List list) { + if (msgManager.isExpectedTransaction(transaction)) { meterStats.updateStats(list); } } - public synchronized void updateQueueStats(TransactionAware transaction, Boolean more, List list) { - if (msgManager.isExpectedTransaction(transaction, more)) { + public synchronized void updateQueueStats(TransactionAware transaction, List list) { + if (msgManager.isExpectedTransaction(transaction)) { queueStats.updateStats(list); } } - public synchronized void updateFlowTableStats(TransactionAware transaction, Boolean more, List list) { - if (msgManager.isExpectedTransaction(transaction, more)) { + public synchronized void updateFlowTableStats(TransactionAware transaction, List list) { + if (msgManager.isExpectedTransaction(transaction)) { flowTableStats.updateStats(list); } } - public synchronized void updateNodeConnectorStats(TransactionAware transaction, Boolean more, List list) { - if (msgManager.isExpectedTransaction(transaction, more)) { + public synchronized void updateNodeConnectorStats(TransactionAware transaction, List list) { + if (msgManager.isExpectedTransaction(transaction)) { nodeConnectorStats.updateStats(list); } } - public synchronized void updateAggregateFlowStats(TransactionAware transaction, Boolean more, AggregateFlowStatistics flowStats) { - final Short tableId = msgManager.isExpectedTableTransaction(transaction, more); + public synchronized void updateAggregateFlowStats(TransactionAware transaction, AggregateFlowStatistics flowStats) { + final Short tableId = msgManager.isExpectedTableTransaction(transaction); if (tableId != null) { final DataModificationTransaction trans = dps.beginTransaction(); InstanceIdentifier tableRef = InstanceIdentifier.builder(Nodes.class).child(Node.class, targetNodeKey) @@ -203,8 +203,8 @@ public final class NodeStatisticsHandler implements AutoCloseable, FlowCapableCo } } - public synchronized void updateFlowStats(TransactionAware transaction, Boolean more, List list) { - if (msgManager.isExpectedTransaction(transaction, more)) { + public synchronized void updateFlowStats(TransactionAware transaction, List list) { + if (msgManager.isExpectedTransaction(transaction)) { flowStats.updateStats(list); } } diff --git a/opendaylight/md-sal/statistics-manager/src/main/java/org/opendaylight/controller/md/statistics/manager/StatisticsListener.java b/opendaylight/md-sal/statistics-manager/src/main/java/org/opendaylight/controller/md/statistics/manager/StatisticsListener.java index bd9f96c875..a06f7efdbb 100644 --- a/opendaylight/md-sal/statistics-manager/src/main/java/org/opendaylight/controller/md/statistics/manager/StatisticsListener.java +++ b/opendaylight/md-sal/statistics-manager/src/main/java/org/opendaylight/controller/md/statistics/manager/StatisticsListener.java @@ -57,7 +57,7 @@ public class StatisticsListener implements OpendaylightGroupStatisticsListener, public void onMeterConfigStatsUpdated(final MeterConfigStatsUpdated notification) { final NodeStatisticsHandler handler = this.statisticsManager.getStatisticsHandler(notification.getId()); if (handler != null) { - handler.updateMeterConfigStats(notification, notification.isMoreReplies(), notification.getMeterConfigStats()); + handler.updateMeterConfigStats(notification, notification.getMeterConfigStats()); } } @@ -65,7 +65,7 @@ public class StatisticsListener implements OpendaylightGroupStatisticsListener, public void onMeterStatisticsUpdated(MeterStatisticsUpdated notification) { final NodeStatisticsHandler handler = this.statisticsManager.getStatisticsHandler(notification.getId()); if (handler != null) { - handler.updateMeterStats(notification, notification.isMoreReplies(), notification.getMeterStats()); + handler.updateMeterStats(notification, notification.getMeterStats()); } } @@ -73,7 +73,7 @@ public class StatisticsListener implements OpendaylightGroupStatisticsListener, public void onGroupDescStatsUpdated(GroupDescStatsUpdated notification) { final NodeStatisticsHandler handler = statisticsManager.getStatisticsHandler(notification.getId()); if (handler != null) { - handler.updateGroupDescStats(notification, notification.isMoreReplies(), notification.getGroupDescStats()); + handler.updateGroupDescStats(notification, notification.getGroupDescStats()); } } @@ -81,7 +81,7 @@ public class StatisticsListener implements OpendaylightGroupStatisticsListener, public void onGroupStatisticsUpdated(GroupStatisticsUpdated notification) { final NodeStatisticsHandler handler = statisticsManager.getStatisticsHandler(notification.getId()); if (handler != null) { - handler.updateGroupStats(notification, notification.isMoreReplies(), notification.getGroupStats()); + handler.updateGroupStats(notification, notification.getGroupStats()); } } @@ -106,7 +106,7 @@ public class StatisticsListener implements OpendaylightGroupStatisticsListener, sucLogger.debug("Received flow stats update : {}",notification.toString()); final NodeStatisticsHandler sna = this.statisticsManager.getStatisticsHandler(notification.getId()); if (sna != null) { - sna.updateFlowStats(notification, notification.isMoreReplies(), notification.getFlowAndStatisticsMapList()); + sna.updateFlowStats(notification, notification.getFlowAndStatisticsMapList()); } } @@ -114,7 +114,7 @@ public class StatisticsListener implements OpendaylightGroupStatisticsListener, public void onAggregateFlowStatisticsUpdate(AggregateFlowStatisticsUpdate notification) { final NodeStatisticsHandler handler = this.statisticsManager.getStatisticsHandler(notification.getId()); if (handler != null) { - handler.updateAggregateFlowStats(notification, notification.isMoreReplies(), notification); + handler.updateAggregateFlowStats(notification, notification); } } @@ -122,7 +122,7 @@ public class StatisticsListener implements OpendaylightGroupStatisticsListener, public void onNodeConnectorStatisticsUpdate(NodeConnectorStatisticsUpdate notification) { final NodeStatisticsHandler handler = this.statisticsManager.getStatisticsHandler(notification.getId()); if (handler != null) { - handler.updateNodeConnectorStats(notification, notification.isMoreReplies(), notification.getNodeConnectorStatisticsAndPortNumberMap()); + handler.updateNodeConnectorStats(notification, notification.getNodeConnectorStatisticsAndPortNumberMap()); } } @@ -130,7 +130,7 @@ public class StatisticsListener implements OpendaylightGroupStatisticsListener, public void onFlowTableStatisticsUpdate(FlowTableStatisticsUpdate notification) { final NodeStatisticsHandler handler = this.statisticsManager.getStatisticsHandler(notification.getId()); if (handler != null) { - handler.updateFlowTableStats(notification, notification.isMoreReplies(), notification.getFlowTableAndStatisticsMap()); + handler.updateFlowTableStats(notification, notification.getFlowTableAndStatisticsMap()); } } @@ -138,7 +138,7 @@ public class StatisticsListener implements OpendaylightGroupStatisticsListener, public void onQueueStatisticsUpdate(QueueStatisticsUpdate notification) { final NodeStatisticsHandler handler = this.statisticsManager.getStatisticsHandler(notification.getId()); if (handler != null) { - handler.updateQueueStats(notification, notification.isMoreReplies(), notification.getQueueIdAndStatisticsMap()); + handler.updateQueueStats(notification, notification.getQueueIdAndStatisticsMap()); } } } -- 2.36.6