blob: 9759ed3f5277a205ee2ba908c5444f4b1433846d [file] [log] [blame] [view]
# connect method
*[<Null safety>](https://dart.dev/null-safety)*
- @override
int connect
(dynamic flags, int mode, [InterfaceRequest](../../package-fidl_fidl/InterfaceRequest-class.md) request, [dynamic parentFlags])
_<span class="feature override">override</span>_
<p>Connect to this vnode.
All flags and modes are defined in
<a href="https://fuchsia.googlesource.com/fuchsia/+/HEAD/sdk/fidl/fuchsia.io/">https://fuchsia.googlesource.com/fuchsia/+/HEAD/sdk/fidl/fuchsia.io/</a></p>
<p>By default param <code>#parentFlags</code> is all rights, so that open will allow
all rights requested on the incoming <code>request</code>.
This param is used by clone to restrict cloning.</p>
## Implementation
```dart
@override
int connect(OpenFlags flags, int mode, fidl.InterfaceRequest<Node> request,
[OpenFlags? parentFlags]) {
if (_closed) {
sendErrorEvent(flags, ZX.ERR_NOT_SUPPORTED, request);
return ZX.ERR_NOT_SUPPORTED;
}
final status = _validateFlagsAndMode(flags, mode);
if (status != ZX.OK) {
sendErrorEvent(flags, status, request);
return status;
}
_connector(fidl.InterfaceRequest(request.passChannel()));
return ZX.OK;
}
```