/******************************************************************************* * Copyright (c) 2012-2013 CWI * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * * * Michael Steindorfer - Michael.Steindorfer@cwi.nl - CWI *******************************************************************************/ package org.rascalmpl.debug; /** * Specification of messages that are exchanged between the debugger and the * runtime. */ public interface IDebugMessage { /** * Verb describing the action to take after receiving a message, or * <code>UNKNOWN</code> if not provided. */ enum Action { UNKNOWN, SET, DELETE, TERMINATE, SUSPEND, RESUME } /** * Noun describing the subject of the messages, or <code>UNKNOWN</code> if * not provided. */ enum Subject { UNKNOWN, BREAKPOINT, INTERPRETER } /** * Additional information to the subject, or <code>UNKNOWN</code> if not * provided. */ enum Detail { UNKNOWN, /** * Indicates the debugger was suspended due to the completion of a step * action. */ STEP_END, /** * Indicates a thread was suspended by a breakpoint. */ BREAKPOINT, /** * Indicates the debugger was suspended / resumed due to a client * request. */ CLIENT_REQUEST, /** * Indicates a continuation of the execution, caused by a step into * request. */ STEP_INTO, /** * Indicates a continuation of the execution, caused by a step over * request. */ STEP_OVER } Action getAction(); Subject getSubject(); Detail getDetail(); Object getPayload(); }