description

# runZoned<R> static method

R runZoned<R>(

1. R body(), {
2. Directory createDirectory(
   1. String
   )?,
3. Directory getCurrentDirectory()?,
4. void setCurrentDirectory(
   1. String
   )?,
5. Directory getSystemTempDirectory()?,
6. File createFile(
   1. String
   )?,
7. Future<FileStat> stat(
   1. String
   )?,
8. FileStat statSync(
   1. String
   )?,
9. Future<bool> fseIdentical(
   1. String,
   2. String
   )?,
10. bool fseIdenticalSync(
    1. String,
    2. String
    )?,
11. Future<FileSystemEntityType> fseGetType(
    1. String,
    2. bool
    )?,
12. FileSystemEntityType fseGetTypeSync(
    1. String,
    2. bool
    )?,
13. Stream<FileSystemEvent> fsWatch(
    1. String,
    2. int,
    3. bool
    )?,
14. bool fsWatchIsSupported()?,
15. Link createLink(
    1. String
    )?,
16. Future<Socket> socketConnect(
    1. dynamic,
    2. int, {
    3. dynamic sourceAddress,
    4. int sourcePort,
    5. Duration? timeout,
    })?,
17. Future<ConnectionTask<Socket>> socketStartConnect(
    1. dynamic,
    2. int, {
    3. dynamic sourceAddress,
    4. int sourcePort,
    })?,
18. Future<ServerSocket> serverSocketBind(
    1. dynamic,
    2. int, {
    3. int backlog,
    4. bool shared,
    5. bool v6Only,
    })?,
19. Stdin stdin()?,
20. Stdout stdout()?,
21. Stdout stderr()?,
22. @Since.new("3.10") Never exit(
    1. int
    )?,

})

Runs `body` in a fresh Zone using the provided overrides.

See the documentation on the corresponding methods of IOOverrides for information about what the optional arguments do.

## Implementation

    static R runZoned<R>(
      R body(), {
      // Directory
      Directory Function(String)? createDirectory,
      Directory Function()? getCurrentDirectory,
      void Function(String)? setCurrentDirectory,
      Directory Function()? getSystemTempDirectory,

      // File
      File Function(String)? createFile,

      // FileStat
      Future<FileStat> Function(String)? stat,
      FileStat Function(String)? statSync,

      // FileSystemEntity
      Future<bool> Function(String, String)? fseIdentical,
      bool Function(String, String)? fseIdenticalSync,
      Future<FileSystemEntityType> Function(String, bool)? fseGetType,
      FileSystemEntityType Function(String, bool)? fseGetTypeSync,

      // _FileSystemWatcher
      Stream<FileSystemEvent> Function(String, int, bool)? fsWatch,
      bool Function()? fsWatchIsSupported,

      // Link
      Link Function(String)? createLink,

      // Socket
      Future<Socket> Function(
        dynamic,
        int, {
        dynamic sourceAddress,
        int sourcePort,
        Duration? timeout,
      })?
      socketConnect,
      Future<ConnectionTask<Socket>> Function(
        dynamic,
        int, {
        dynamic sourceAddress,
        int sourcePort,
      })?
      socketStartConnect,

      // ServerSocket
      Future<ServerSocket> Function(
        dynamic,
        int, {
        int backlog,
        bool v6Only,
        bool shared,
      })?
      serverSocketBind,

      // Standard Streams
      Stdin Function()? stdin,
      Stdout Function()? stdout,
      Stdout Function()? stderr,

      // Process exit
      @Since("3.10") Never Function(int)? exit,
    }) {
      // Avoid building chains of override scopes. Just copy outer scope's
      // functions and `_previous`.
      var current = IOOverrides.current;
      _IOOverridesScope? currentScope;
      if (current is _IOOverridesScope) {
        currentScope = current;
        current = currentScope._previous;
      }
      IOOverrides overrides = _IOOverridesScope(
        current,
        // Directory
        createDirectory ?? currentScope?._createDirectory,
        getCurrentDirectory ?? currentScope?._getCurrentDirectory,
        setCurrentDirectory ?? currentScope?._setCurrentDirectory,
        getSystemTempDirectory ?? currentScope?._getSystemTempDirectory,

        // File
        createFile ?? currentScope?._createFile,

        // FileStat
        stat ?? currentScope?._stat,
        statSync ?? currentScope?._statSync,

        // FileSystemEntity
        fseIdentical ?? currentScope?._fseIdentical,
        fseIdenticalSync ?? currentScope?._fseIdenticalSync,
        fseGetType ?? currentScope?._fseGetType,
        fseGetTypeSync ?? currentScope?._fseGetTypeSync,

        // _FileSystemWatcher
        fsWatch ?? currentScope?._fsWatch,
        fsWatchIsSupported ?? currentScope?._fsWatchIsSupported,

        // Link
        createLink ?? currentScope?._createLink,

        // Socket
        socketConnect ?? currentScope?._socketConnect,
        socketStartConnect ?? currentScope?._socketStartConnect,

        // ServerSocket
        serverSocketBind ?? currentScope?._serverSocketBind,

        // Standard streams
        stdin ?? currentScope?._stdin,
        stdout ?? currentScope?._stdout,
        stderr ?? currentScope?._stderr,

        // Process exit
        exit ?? currentScope?._exit,
      );
      return dart_async.runZoned<R>(
        body,
        zoneValues: {_ioOverridesToken: overrides},
      );
    }