runZoned<R> static method
- R body(), {
- Directory createDirectory()?,
- Directory getCurrentDirectory()?,
- void setCurrentDirectory()?,
- Directory getSystemTempDirectory()?,
- File createFile()?,
- Future<
FileStat> stat()?, - FileStat statSync()?,
- Future<
bool> fseIdentical()?, - bool fseIdenticalSync()?,
- Future<
FileSystemEntityType> fseGetType()?, - FileSystemEntityType fseGetTypeSync()?,
- Stream<
FileSystemEvent> fsWatch()?, - bool fsWatchIsSupported()?,
- Link createLink()?,
- Future<
Socket> socketConnect(})?, - Future<
ConnectionTask< socketStartConnect(})?,Socket> > - Future<
ServerSocket> serverSocketBind(})?, - Stdin stdin()?,
- Stdout stdout()?,
- Stdout stderr()?,
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,
}) {
// 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 = new _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,
);
return dart_async.runZoned<R>(
body,
zoneValues: {_ioOverridesToken: overrides},
);
}