// • ▌ ▄ ·. ▄▄▄· ▄▄ • ▪ ▄▄· ▄▄▄▄· ▄▄▄· ▐▄▄▄ ▄▄▄ . // ·██ ▐███▪▐█ ▀█ ▐█ ▀ ▪██ ▐█ ▌▪▐█ ▀█▪▐█ ▀█ •█▌ ▐█▐▌· // ▐█ ▌▐▌▐█·▄█▀▀█ ▄█ ▀█▄▐█·██ ▄▄▐█▀▀█▄▄█▀▀█ ▐█▐ ▐▌▐▀▀▀ // ██ ██▌▐█▌▐█ ▪▐▌▐█▄▪▐█▐█▌▐███▌██▄▪▐█▐█ ▪▐▌██▐ █▌▐█▄▄▌ // ▀▀ █▪▀▀▀ ▀ ▀ ·▀▀▀▀ ▀▀▀·▀▀▀ ·▀▀▀▀ ▀ ▀ ▀▀ █▪ ▀▀▀ // Magicbane Emulator Project © 2013 - 2022 // www.magicbane.com package engine.job; public abstract class AbstractJobStatistics { private String objectName; private long totalServiceTime = 0L; private long totalQueueTime = 0L; private long executions = 0L; private long maxServiceTime = 0L; private long minServiceTime = 0L; private long minQueueTime = 0L; private long maxQueueTime = 0L; public AbstractJobStatistics() { this.objectName = "Unknown"; } public AbstractJobStatistics(String objectName) { this.objectName = objectName; } public String getObjectName() { return this.objectName; } public void setObjectName(String objectName) { this.objectName = objectName; } public long getExecutions() { return this.executions; } public long getTotalServiceTime() { return this.totalServiceTime; } public long getTotalQueueTime() { return this.totalQueueTime; } public long getAvgQueueTime() { if (this.executions > 0L && this.totalQueueTime > 0L) return this.totalQueueTime / this.executions; else return 0L; } public long getAvgServiceTime() { if (this.executions > 0L && this.totalServiceTime > 0L) return this.totalServiceTime / this.executions; else return 0L; } public long getMinServiceTime() { return this.minServiceTime; } public long getMinQueueTime() { return this.minQueueTime; } public long getMaxServiceTime() { return this.maxServiceTime; } public long getMaxQueueTime() { return this.maxQueueTime; } public void incrExecutions() { this.executions++; } public void addServiceTime(long svcTime) { this.totalServiceTime += svcTime; this.incrExecutions(); if (svcTime > this.maxServiceTime) this.maxServiceTime = svcTime; if (svcTime < this.minServiceTime || this.minServiceTime == 0L) this.minServiceTime = svcTime; } public void addQueueTime(long queueTime) { this.totalQueueTime += queueTime; this.incrExecutions(); if (queueTime > this.maxQueueTime) this.maxQueueTime = queueTime; if (queueTime < this.minQueueTime || this.minQueueTime == 0L) this.minQueueTime = queueTime; } public String asString() { return this.objectName + " execs=" + this.executions + " avg_svc_ms=" + this.getAvgServiceTime() + " min_svc_ms=" + this.minServiceTime + " max_svc_ms=" + this.maxServiceTime + " avg_q_ms=" + this.getAvgQueueTime() + " min_q_ms=" + this.minQueueTime + " max_q_ms=" + this.maxQueueTime; } public String asChatMsg() { return this.objectName + "=>" + this.executions + ',' + this.getAvgServiceTime() + '/' + this.minServiceTime + '/' + this.maxServiceTime + " " + this.getAvgQueueTime() + '/' + this.minQueueTime + '/' + this.maxQueueTime + '\n'; } }