* Class counts message of {@link org.opendaylight.openflowplugin.api.openflow.statistics.ofpspecific.MessageSpy.STATISTIC_GROUP} type
* and provides info as debug log.
*/
-public class MessageIntelligenceAgencyImpl implements MessageIntelligenceAgency<Class<?>>, MessageIntelligenceAgencyMXBean {
+public class MessageIntelligenceAgencyImpl implements MessageIntelligenceAgency, MessageIntelligenceAgencyMXBean {
private static final Logger LOG = LoggerFactory.getLogger(MessageIntelligenceAgencyImpl.class);
private static final class MessageCounters {
private static final AtomicLongFieldUpdater<MessageCounters> UPDATER = AtomicLongFieldUpdater.newUpdater(MessageCounters.class, "current");
+ @SuppressWarnings("unused")
private volatile long current;
private long cumulative;
}
}
- private final ConcurrentMap<STATISTIC_GROUP, ConcurrentMap<Class<?>, MessageCounters>> inputStats = new ConcurrentHashMap<>();
+ private ConcurrentMap<STATISTIC_GROUP, ConcurrentMap<Class<?>, MessageCounters>> inputStats = new ConcurrentHashMap<>();
@Override
public void spyMessage(@Nonnull final Class<?> message, final STATISTIC_GROUP statGroup) {
- Preconditions.checkNotNull(message,"Message can't be null.");
+ Preconditions.checkNotNull(message, "Message can't be null.");
getCounters(message, statGroup).increment();
}
/**
- * @param message
- * @param statGroup TODO
- * @return
+ * @param message counted element
+ * @param statGroup statistic counter group
+ * @return corresponding counter
*/
private MessageCounters getCounters(final Class<?> message, final STATISTIC_GROUP statGroup) {
ConcurrentMap<Class<?>, MessageCounters> groupData = getOrCreateGroupData(statGroup);
}
return dump;
}
+
+ @Override
+ public void resetStatistics() {
+ inputStats = new ConcurrentHashMap<>();
+ }
}