package resa.optimize;
/**
* Created by ding on 14-5-6.
*/
public class QueueAggResult implements Cloneable {
private long arrivalCount;
private long totalQueueLength;
private int totalSampleCount;
public QueueAggResult(long arrivalCount, long totalQueueLength, int totalSampleCount) {
this.arrivalCount = arrivalCount;
this.totalQueueLength = totalQueueLength;
this.totalSampleCount = totalSampleCount;
}
public QueueAggResult() {
this(0, 0, 0);
}
public double getAvgQueueLength() {
return totalSampleCount > 0 ? (double) totalQueueLength / (double) totalSampleCount : 0.0;
}
public long getArrivalCount() {
return arrivalCount;
}
public long getTotalQueueLength() {
return totalQueueLength;
}
public int getTotalSampleCount() {
return totalSampleCount;
}
public void add(QueueAggResult result) {
this.arrivalCount += result.arrivalCount;
this.totalQueueLength += result.totalQueueLength;
this.totalSampleCount += result.totalSampleCount;
}
public void add(long arrivalCount, long totalQueueLength, int totalSampleCount) {
this.arrivalCount += arrivalCount;
this.totalQueueLength += totalQueueLength;
this.totalSampleCount += totalSampleCount;
}
@Override
public String toString() {
return String.format("arrCount: %d, totalQLen: %d, totalSamCnt: %d", arrivalCount,
totalQueueLength, totalSampleCount);
}
}