Rev 413 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
/******************************************************************************** LogEntry.java** Holds the LogEntry class, which is a representation of what happened every* during the critical parts of step() in Scheduler-derived classes.** Copyright (c) 2006, Ira W. Snyder (devel@irasnyder.com)** Permission is hereby granted, free of charge, to any person obtaining a copy* of this software and associated documentation files (the "Software"), to deal* in the Software without restriction, including without limitation the rights* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell* copies of the Software, and to permit persons to whom the Software is* furnished to do so, subject to the following conditions:** The above copyright notice and this permission notice shall be included in* all copies or substantial portions of the Software.** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS* IN THE SOFTWARE.******************************************************************************//*** A representation of critical events that happen in Scheduler-derived classes.** @class CS431 Fall 2006* @author Ira W. Snyder (devel@irasnyder.com)*/public class LogEntry{/** Message types that are possible */public static enum MsgType{/** Represents a Process starting on the CPU */START,/** Represents a Process completing this timeslice on the CPU,* but not being completely finished yet.*/EXPIRE,/** Represents a Process completing its execution completely. */COMPLETE};/** The time at which this event happened */public final int time;/** The process that caused this event */public final Process proc;/** The type of message that this event represents */public final MsgType msg;/*** Constructor for the LogEntry class.** @param proc the Process that caused this event* @param time the time when this event happened* @param msg the type of message that this represents*/public LogEntry (Process proc, int time, MsgType msg){this.time = time;this.proc = proc;this.msg = msg;}/*** Convert this LogEntry to a String for printing.** @return the String representation of this LogEntry*/public String toString (){String action = new String ("invalid");switch (msg){case START:action = "started";break;case EXPIRE:action = "expired";break;case COMPLETE:action = "finished";break;}return "@" + time + " " + proc.name + " " + action;}}/* vim: set ts=4 sts=4 sw=4 expandtab: */