01: /*******************************************************************************
02: * Copyright (c) 2000, 2005 IBM Corporation and others.
03: * All rights reserved. This program and the accompanying materials
04: * are made available under the terms of the Eclipse Public License v1.0
05: * which accompanies this distribution, and is available at
06: * http://www.eclipse.org/legal/epl-v10.html
07: *
08: * Contributors:
09: * IBM Corporation - initial API and implementation
10: *******************************************************************************/package org.eclipse.jdt.internal.debug.core;
11:
12: import org.eclipse.jdt.internal.debug.core.model.JDIDebugTarget;
13:
14: import com.sun.jdi.event.Event;
15:
16: /**
17: * A jdi event listener is notified of events associated with
18: * a specific jdi event request. A listener registers/deregisters
19: * event requests with a debug target.
20: *
21: * @see JDIDebugTarget#addJDIEventListener(IJDIEventListener, EventRequest)
22: * @see JDIDebugTarget#removeJDIEventListener(IJDIEventListener, EventRequest)
23: */
24:
25: public interface IJDIEventListener {
26: /**
27: * Handles the given event that this listener has registered for and
28: * returns whether the thread in which the event occurred should
29: * be resumed. All event handlers for the events in an event set
30: * are given a chance to vote on whether the thread should be
31: * resumed. If all agree, the thread is resumed by the event dispatcher.
32: * If any event handler returns <code>false</code> the thread in which
33: * the event originated is left in a suspended state.
34: *
35: * @param event the event to handle
36: * @param target the debug target in which the event occurred
37: * @return whether the thread in which the event occurred should be resumed
38: */
39: public boolean handleEvent(Event event, JDIDebugTarget target);
40:
41: /**
42: * Notifies this event handler that event that a vote to resume took place,
43: * and that this handler voted to suspend and won that vote.
44: * <p>
45: * This is a fix for bug 78764.
46: * </p>
47: * @param event the event that was handled
48: * @param target the target in which the event occurred
49: * @since 3.1
50: */
51: public void wonSuspendVote(Event event, JDIDebugTarget target);
52: }
|