| // 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. |
| |
| #include <lib/ui/scenic/cpp/view_token_pair.h> |
| #include <zircon/assert.h> |
| |
| namespace scenic { |
| |
| ViewTokenPair ViewTokenPair::New() { |
| ViewTokenPair token_pair; |
| |
| auto status = |
| zx::eventpair::create(0u, &token_pair.view_token.value, &token_pair.view_holder_token.value); |
| // Assert even in non-debug builds, because eventpair creation can fail under |
| // normal operation. Failure can occur for example, if the job creation |
| // policy governing this process forbids eventpair creation. |
| // |
| // It is unlikely that a well-behaved Scenic client would crash here; if you |
| // hit this, it means something is very abnormal. |
| ZX_ASSERT(status == ZX_OK); |
| |
| return token_pair; |
| } |
| |
| ViewTokenStdPair NewViewTokenPair() { |
| auto token_pair = ViewTokenPair::New(); |
| |
| return ViewTokenStdPair(std::move(token_pair.view_token), |
| std::move(token_pair.view_holder_token)); |
| } |
| |
| fuchsia::ui::views::ViewToken ToViewToken(zx::eventpair raw_token) { |
| return fuchsia::ui::views::ViewToken({ |
| .value = std::move(raw_token), |
| }); |
| } |
| |
| fuchsia::ui::views::ViewHolderToken ToViewHolderToken(zx::eventpair raw_token) { |
| return fuchsia::ui::views::ViewHolderToken({ |
| .value = std::move(raw_token), |
| }); |
| } |
| |
| } // namespace scenic |