package com.trendmicro.mist;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import com.trendmicro.mist.util.Exchange;
public class ExchangeMetric {
public static Map<String, ExchangeMetric> exchangeStat = Collections.synchronizedMap(new HashMap<String, ExchangeMetric>());
private long msgOut = 0;
private long msgOutBytes = 0;
private long msgIn = 0;
private long msgInBytes = 0;
// //////////////////////////////////////////////////////////////////////////////
public ExchangeMetric() {
}
public static synchronized void initExchangeMetric(Exchange exchange) {
if(!exchangeStat.containsKey(exchange.toString())) {
ExchangeMetric metric = new ExchangeMetric();
exchangeStat.put(exchange.toString(), metric);
}
}
public static ExchangeMetric getExchangeMetric(Exchange exchange) {
return exchangeStat.get(exchange.toString());
}
public synchronized void increaseMessageIn(long size) {
msgIn++;
msgInBytes += size;
}
public synchronized void addMessageIn(long cnt, long size) {
msgIn += cnt;
msgInBytes += size;
}
public synchronized void increaseMessageOut(long size) {
msgOut++;
msgOutBytes += size;
}
public synchronized void addMessageOut(long cnt, long size) {
msgOut += cnt;
msgOutBytes += size;
}
public synchronized void resetMessageIn() {
msgIn = 0;
msgInBytes = 0;
}
public synchronized void resetMessageOut() {
msgOut = 0;
msgOutBytes = 0;
}
public long getMessageOutCount() {
return msgOut;
}
public long getMessageOutBytes() {
return msgOutBytes;
}
public long getMessageInCount() {
return msgIn;
}
public long getMessageInBytes() {
return msgInBytes;
}
}