package org.overture.interpreter.messages.rtlog.nextgen; import java.io.Serializable; public class NextGenThreadEvent implements Serializable, INextGenEvent { /** * */ private static final long serialVersionUID = -170215356410239548L; public enum ThreadEventType { CREATE, SWAP, KILL } public NextGenThread thread; public NextGenTimeStamp time; public ThreadEventType type; public NextGenThreadEvent(NextGenThread thread, NextGenTimeStamp time, ThreadEventType t) { this.thread = thread; this.time = time; this.type = t; } @Override public String toString() { StringBuffer s = new StringBuffer(); s.append("Thread"); switch (this.type) { case CREATE: s.append("Create"); s.append(" -> id:"); s.append(this.thread.id); s.append(" period: "); s.append(thread.periodic); s.append(" objref: "); s.append(this.thread.object == null ? "no object" : this.thread.object.id); s.append(" clnm: \""); s.append(this.thread.object == null ? "no object" : this.thread.object.classDef.name); s.append("\""); s.append(" cpunm: "); s.append(thread.object != null ? thread.object.cpu.id : "0"); s.append(" time: "); s.append(time.toString()); break; case KILL: s.append("Kill"); s.append(" -> id:"); s.append(this.thread.id); s.append(" time: "); s.append(time.toString()); break; default: break; } return s.toString(); } public NextGenTimeStamp getTime() { return time; } }