## Uses of Interface
jdk.jshell.spi.ExecutionControl

Packages that use ExecutionControl
jdk.jshell.execution: Provides implementation support for building JShell execution engines.
jdk.jshell.spi: Defines the Service Provider Interface for pluggable JShell execution engines.

### Uses of ExecutionControl in jdk.jshell.execution

Classes in jdk.jshell.execution that implement ExecutionControl
`class` `DirectExecutionControl` An `ExecutionControl` implementation that runs in the current process.
`class` `JdiDefaultExecutionControl` The implementation of `ExecutionControl` that the JShell-core uses by default.
`class` `JdiExecutionControl` Abstract JDI implementation of `ExecutionControl`.
`class` `LocalExecutionControl` An implementation of `ExecutionControl` which executes in the same JVM as the JShell-core.
`class` `RemoteExecutionControl` The remote agent runs in the execution process (separate from the main JShell process).
`class` `StreamingExecutionControl` An implementation of the `ExecutionControl` execution engine SPI which streams requests to a remote agent where execution takes place.

Methods in jdk.jshell.execution that return ExecutionControl
`ExecutionControl` FailOverExecutionControlProvider.`generate​(ExecutionEnv env, Map<String,​String> parameters)` Create and return a locally executing `ExecutionControl` instance.
`ExecutionControl` LocalExecutionControlProvider.`generate​(ExecutionEnv env, Map<String,​String> parameters)` Create and return a locally executing `ExecutionControl` instance.
`static ExecutionControl` Util.`remoteInputOutput​(InputStream input, OutputStream output, Map<String,​OutputStream> outputStreamMap, Map<String,​InputStream> inputStreamMap, BiFunction<ObjectInput,​ObjectOutput,​ExecutionControl> factory)` Creates an ExecutionControl for given packetized input and output.

Methods in jdk.jshell.execution with parameters of type ExecutionControl
`static void` Util.`forwardExecutionControl​(ExecutionControl ec, ObjectInput in, ObjectOutput out)` Forward commands from the input to the specified `ExecutionControl` instance, then responses back on the output.
`static void` Util.`forwardExecutionControlAndIO​(ExecutionControl ec, InputStream inStream, OutputStream outStream, Map<String,​Consumer<OutputStream>> outputStreamMap, Map<String,​Consumer<InputStream>> inputStreamMap)` Forward commands from the input to the specified `ExecutionControl` instance, then responses back on the output.

Method parameters in jdk.jshell.execution with type arguments of type ExecutionControl
`static ExecutionControl` Util.`remoteInputOutput​(InputStream input, OutputStream output, Map<String,​OutputStream> outputStreamMap, Map<String,​InputStream> inputStreamMap, BiFunction<ObjectInput,​ObjectOutput,​ExecutionControl> factory)` Creates an ExecutionControl for given packetized input and output.

### Uses of ExecutionControl in jdk.jshell.spi

Methods in jdk.jshell.spi that return ExecutionControl
`static ExecutionControl` ExecutionControl.`generate​(ExecutionEnv env, String spec)` Search for a provider, then create and return the `ExecutionControl` instance.
`static ExecutionControl` ExecutionControl.`generate​(ExecutionEnv env, String name, Map<String,​String> parameters)` Search for a provider, then create and return the `ExecutionControl` instance.
`ExecutionControl` ExecutionControlProvider.`generate​(ExecutionEnv env, Map<String,​String> parameters)` Create and return the `ExecutionControl` instance.