/* -------------------------------------------------------- * * Aaron Morris * * CS567 * * Object-Oriented Event-Driven Simulation * * * * Generic Stats class, tracking statistics. Contains * * Averager, Counter, and Report objects. * * -------------------------------------------------------- */ //package datasend; import java.awt.*; public class Stats { /* members */ protected Counter avgResponse; // Average Request Turnaround protected Counter avgFileSize; // Average File Size protected Averager avgIdle; // Average number of idle servers protected Averager avgLoad; // Average Load per Server protected int GlobalTime = 0; // The Global Simulation Time protected Report report; // Output Object protected CS522App app; // Pointer to GUI for output // Constructor -- Initialize all stats keeping objects and Output object public Stats(String FileName,boolean Echo,CS522App app) { this.app = app; report = new Report(FileName,Echo,app); avgIdle = new Averager("Average Idle Servers"); avgFileSize = new Counter("Average File Size"); avgResponse = new Counter("Average Response Time"); avgLoad = new Averager("Average Server Load"); report.write("==========================================="); report.write("CS522 CLIENT/SERVER SIMULATION"); report.write("Aaron Morris"); report.write("Last Updated 12/00"); report.write(" "); report.write("Output will be written to: " + FileName); report.write("==========================================="); report.write("BEGIN SIMULATION:"); report.write(" "); }; // Method to return the global simulation time public int getGlobalTime() { return this.GlobalTime; } // Method to set the global simulation time public void setGlobalTime(int Time) { this.GlobalTime = Time; } // Method to do the final report on all statistics at end of simulation public void doReport() { report.write(" "); report.write("Final Results"); report.write("--------------------"); avgResponse.doReport(this.report); avgFileSize.doReport(this.report); avgIdle.doReport(this.report); avgLoad.doReport(this.report); report.closeReport(); } }