*[<Null safety>](https://dart.dev/null-safety)*
- @override
int connect (dynamic flags, int mode, InterfaceRequest request, [dynamic parentFlags])
override
Connects to this instance of PseudoFile and serves fidl_fuchsia_io.File
over fidl.
Implementation
@override
int connect(OpenFlags flags, int mode, fidl.InterfaceRequest<Node> request,
[OpenFlags? parentFlags]) {
if (_isClosed) {
sendErrorEvent(flags, ZX.ERR_NOT_SUPPORTED, request);
return ZX.ERR_NOT_SUPPORTED;
}
// There should be no MODE_TYPE_* flags set, except for, possibly,
// MODE_TYPE_FILE when the target is a pseudo file.
if ((mode & ~modeProtectionMask) & ~modeTypeFile != 0) {
sendErrorEvent(flags, ZX.ERR_INVALID_ARGS, request);
return ZX.ERR_INVALID_ARGS;
}
final connectFlags = filterForNodeReference(flags);
final status =
_validateFlags(parentFlags ?? Flags.fsRightsDefault(), connectFlags);
if (status != ZX.OK) {
sendErrorEvent(connectFlags, status, request);
return status;
}
final connection = _FileConnection(
capacity: _capacity,
flags: connectFlags,
file: this,
mode: mode,
request: fidl.InterfaceRequest<File>(request.passChannel()));
// [connection] will also send on_open success event.
_connections.add(connection);
return ZX.OK;
}