sandbox/fidl/
instance_token.rs

1// Copyright 2024 The Fuchsia Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5use crate::WeakInstanceToken;
6use fidl::handle::{EventPair, Signals};
7use fuchsia_async as fasync;
8use zx::Koid;
9
10impl crate::RemotableCapability for WeakInstanceToken {}
11
12impl WeakInstanceToken {
13    async fn serve(server: EventPair) {
14        fasync::OnSignals::new(&server, Signals::OBJECT_PEER_CLOSED).await.ok();
15    }
16
17    pub fn register(self, koid: Koid, server: EventPair) {
18        crate::fidl::registry::insert(self.into(), koid, WeakInstanceToken::serve(server));
19    }
20}