package org.mobicents.qa.performance.jainsip.inspector;
import java.util.concurrent.atomic.AtomicInteger;
public class TestInspector implements TestProbe, TestObserver {
private AtomicInteger createdAmount;
private AtomicInteger terminatedAmount;
private AtomicInteger unexpectedAmount;
private AtomicInteger createdAmountAcc;
private AtomicInteger terminatedAmountAcc;
private AtomicInteger unexpectedAmountAcc;
public TestInspector () {
createdAmount = new AtomicInteger(0);
terminatedAmount = new AtomicInteger(0);
unexpectedAmount = new AtomicInteger(0);
createdAmountAcc = new AtomicInteger(0);
terminatedAmountAcc = new AtomicInteger(0);
unexpectedAmountAcc = new AtomicInteger(0);
}
public void dialogCreated() {
createdAmount.getAndIncrement();
}
public void dialogTerminated() {
terminatedAmount.getAndIncrement();
}
public void dialogTerminatedUnexpectedly() {
unexpectedAmount.getAndIncrement();
}
public int getCreatedDialogCount() {
return createdAmountAcc.get() + createdAmount.get();
}
public int getTerminatedDialogCount() {
return terminatedAmountAcc.get() + terminatedAmount.get();
}
public int getTerminatedUnexpectedlyDialogCount() {
return unexpectedAmountAcc.get() + unexpectedAmount.get();
}
public int getAndResetCreatedDialogCount() {
int value = createdAmount.getAndSet(0);
createdAmountAcc.addAndGet(value);
return value;
}
public int getAndResetTerminatedDialogCount() {
int value = terminatedAmount.getAndSet(0);
terminatedAmountAcc.addAndGet(value);
return value;
}
public int getAndResetTerminatedUnexpectedlyDialogCount() {
int value = unexpectedAmount.getAndSet(0);
unexpectedAmountAcc.addAndGet(value);
return value;
}
}