All Downloads are FREE. Search and download functionalities are using the official Maven repository.

graphql.execution.instrumentation.InstrumentationContext Maven / Gradle / Ivy

There is a newer version: 230521-nf-execution
Show newest version
package graphql.execution.instrumentation;

import graphql.PublicSpi;

import java.util.concurrent.CompletableFuture;

/**
 * When a {@link Instrumentation}.'beginXXX()' method is called then it must return a non null InstrumentationContext
 * that will be invoked when the step is first dispatched and then when it completes.  Sometimes this is effectively the same time
 * whereas at other times its when an asynchronous {@link java.util.concurrent.CompletableFuture} completes.
 *
 * This pattern of construction of an object then call back is intended to allow "timers" to be created that can instrument what has
 * just happened or "loggers" to be called to record what has happened.
 */
@PublicSpi
public interface InstrumentationContext {

    /**
     * This is invoked when the instrumentation step is initially dispatched
     */
    void onDispatched();

    /**
     * This is invoked when the instrumentation step is fully completed
     *
     * @param result the result of the step (which may be null)
     * @param t      this exception will be non null if an exception was thrown during the step
     */
    void onCompleted(T result, Throwable t);

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy