| // Copyright 2018 The Fuchsia Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| part of zircon; |
| |
| // ignore_for_file: public_member_api_docs |
| // ignore_for_file: constant_identifier_names |
| |
| /// Typed wrapper around a Zircon eventpair object. |
| class EventPair extends _HandleWrapper<EventPair> { |
| EventPair(Handle handle) : super(handle); |
| |
| /// Duplicate this [EventPair] with the given rights. |
| EventPair duplicate(int rights) { |
| return EventPair(handle.duplicate(rights)); |
| } |
| |
| // Signals |
| static const int SIGNALED = ZX.EVENTPAIR_SIGNALED; |
| static const int PEER_CLOSED = ZX.EVENTPAIR_PEER_CLOSED; |
| } |
| |
| /// Typed wrapper around a linked pair of eventpair objects and the |
| /// zx_eventpair_create() syscall used to create them. |
| class EventPairPair extends _HandleWrapperPair<EventPair> { |
| factory EventPairPair() { |
| final HandlePairResult result = System.eventpairCreate(); |
| if (result.status == ZX.OK) { |
| return EventPairPair._( |
| result.status, EventPair(result.first), EventPair(result.second)); |
| } else { |
| return EventPairPair._(result.status, null, null); |
| } |
| } |
| |
| EventPairPair._(int status, EventPair first, EventPair second) |
| : super._(status, first, second); |
| } |