/* * Copyright (C) 2006-2016 DLR, Germany * * All rights reserved * * http://www.rcenvironment.de/ */ package de.rcenvironment.core.communication.routing.internal; /** * Statistics on messages in the network. * * @author Phillip Kroll * @author Robert Mischke (added synchronization) */ public final class NetworkStats { private int failedCommunications = 0; private int successfulCommunications = 0; private int sentLSAs = 0; private int receivedLSAs = 0; private int rejectedLSAs = 0; private int hopCountOfSentLSAs = 0; private int hopCountOfReceivedLSAs = 0; private int hopCountOfRejectedLSAs = 0; private int maxReceivedHopCount = 0; private int maxTimeToLive = 0; private int shortesPathComputations = 0; /** * @return The average hop count of sent LSAs. */ public synchronized int averageHopCountOfSentLSAs() { if (sentLSAs > 0) { return hopCountOfSentLSAs / sentLSAs; } else { return 0; } } /** * @return The average hop count of received LSAs. */ public synchronized int averageHopCountOfReceivedLSAs() { if (receivedLSAs > 0) { return hopCountOfReceivedLSAs / receivedLSAs; } else { return 0; } } /** * @return The average hop count of rejected LSAs. */ public synchronized int averageHopCountOfRejectedLSAs() { if (rejectedLSAs > 0) { return hopCountOfRejectedLSAs / rejectedLSAs; } else { return 0; } } /** * @return The number of failed communications. */ public synchronized int getFailedCommunications() { return failedCommunications; } /** * @return The incremented value. */ public synchronized int incFailedCommunications() { return ++this.failedCommunications; } /** * @return The number of successful communications. */ public synchronized int getSuccessfulCommunications() { return successfulCommunications; } /** * @return The incremented value. */ public synchronized int incSuccessfulCommunications() { return ++this.successfulCommunications; } /** * @return The receivedLSAs. */ public synchronized int getReceivedLSAs() { return receivedLSAs; } /** * @return The incremented value. */ public synchronized int incReceivedLSAs() { receivedLSAs++; return receivedLSAs; } /** * @return Returns the getSentLSAs. */ public synchronized int getSentLSAs() { return sentLSAs; } /** * @return The incremented value. */ public synchronized int incSentLSAs() { sentLSAs++; return sentLSAs; } /** * @return The rejectedLSAs. */ public synchronized int getRejectedLSAs() { return rejectedLSAs; } /** * @return The incremented value. */ public synchronized int incRejectedLSAs() { rejectedLSAs++; return rejectedLSAs; } /** * @return The shortesPathComputations. */ public synchronized int getShortestPathComputations() { return shortesPathComputations; } /** * Increment. * @return The incremented value. */ public synchronized int incShortestPathComputations() { shortesPathComputations++; return shortesPathComputations; } /** * @return The hopCountOfReceivedLSAs. */ public synchronized int getHopCountOfReceivedLSAs() { return hopCountOfReceivedLSAs; } /** * @param increment The increment. * @return The incremented value. */ public synchronized int incHopCountOfReceivedLSAs(int increment) { hopCountOfReceivedLSAs += increment; setMaxReceivedHopCount(increment); return hopCountOfReceivedLSAs; } /** * @return The hopCountOfsentLSAs. */ public synchronized int getHopCountOfSentLSAs() { return hopCountOfSentLSAs; } /** * @param increment The increment. * @return The incremented value. */ public synchronized int incHopCountOfSentLSAs(int increment) { hopCountOfSentLSAs += increment; return hopCountOfSentLSAs; } /** * @return Returns the hopCountOfDeclinedLSAs. */ public synchronized int getHopCountOfRejectedLSAs() { return hopCountOfRejectedLSAs; } /** * @param increment The increment. * @return The incremented value. */ public synchronized int incHopCountOfRejectedLSAs(int increment) { hopCountOfRejectedLSAs += increment; return hopCountOfRejectedLSAs; } private int setMaxReceivedHopCount(int value) { if (value > maxReceivedHopCount) { maxReceivedHopCount = value; } return maxReceivedHopCount; } /** * @return Returns the maxReceivedHopCount. */ public synchronized int getMaxReceivedHopCount() { return maxReceivedHopCount; } /** * Set maximum time to live for LSAs. * * @param value The maximum time. * @return The maximum time. */ public synchronized int setMaxTimeToLive(int value) { if (value > maxTimeToLive) { maxTimeToLive = value; } return maxTimeToLive; } /** * @return Returns the maxTimeToLive. */ public synchronized int getMaxTimeToLive() { return maxTimeToLive; } }