| |
| |
| |
| # 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; |
| } |
| ``` |
| |
| |
| |
| |
| |
| |
| |