comparison graal/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/AdvancedInstrumentResultListener.java @ 21355:442b57a7f208

Truffle/Instrumentation: change the signature for creation of Advanced instruments, refactor how the callback listener is managed.
author Michael Van De Vanter <michael.van.de.vanter@oracle.com>
date Tue, 12 May 2015 16:06:00 -0700
parents 575032310b2c
children e34bc00733d1
comparison
equal deleted inserted replaced
21354:575032310b2c 21355:442b57a7f208
29 import com.oracle.truffle.api.nodes.*; 29 import com.oracle.truffle.api.nodes.*;
30 30
31 /** 31 /**
32 * Listener for receiving the result a client-provided {@linkplain AdvancedInstrumentRoot AST 32 * Listener for receiving the result a client-provided {@linkplain AdvancedInstrumentRoot AST
33 * fragment}, when executed by a 33 * fragment}, when executed by a
34 * {@linkplain Instrument#create(AdvancedInstrumentRootFactory, String) Advanced Instrument}. 34 * {@linkplain Instrument#create(AdvancedInstrumentResultListener, AdvancedInstrumentRootFactory, String)
35 * Advanced Instrument}.
35 * 36 *
36 * @see Instrument 37 * @see Instrument
37 * @see AdvancedInstrumentRoot 38 * @see AdvancedInstrumentRoot
38 * @see AdvancedInstrumentRootFactory 39 * @see AdvancedInstrumentRootFactory
39 */ 40 */
40 public interface AdvancedInstrumentResultListener { 41 public interface AdvancedInstrumentResultListener {
41 42
42 /** 43 /**
43 * Notifies listener that a client-provided {@linkplain AdvancedInstrumentRoot AST fragment} has 44 * Notifies listener that a client-provided {@linkplain AdvancedInstrumentRoot AST fragment} has
44 * been executed by an {@linkplain Instrument#create(AdvancedInstrumentRootFactory, String) 45 * been executed by an
46 * {@linkplain Instrument#create(AdvancedInstrumentResultListener, AdvancedInstrumentRootFactory, String)
45 * Advanced Instrument} with the specified result, possibly {@code null}. 47 * Advanced Instrument} with the specified result, possibly {@code null}.
46 * <p> 48 * <p>
47 * <strong>Note: </strong> Truffle will attempt to optimize implementations through partial 49 * <strong>Note: </strong> Truffle will attempt to optimize implementations through partial
48 * evaluation; annotate with {@link TruffleBoundary} if this should not be permitted. 50 * evaluation; annotate with {@link TruffleBoundary} if this should not be permitted.
49 * 51 *
50 * @param node the guest-language AST node to which the host Instrument's {@link Probe} is 52 * @param node the guest-language AST node to which the host Instrument's {@link Probe} is
51 * attached 53 * attached
52 * @param vFrame execution frame at the guest-language AST node 54 * @param vFrame execution frame at the guest-language AST node
53 * @param result the result of this AST fragment's execution 55 * @param result the result of this AST fragment's execution
54 */ 56 */