| // Copyright 2020 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. |
| |
| #ifndef SRC_GRAPHICS_DISPLAY_LIB_COORDINATOR_GETTER_CLIENT_H_ |
| #define SRC_GRAPHICS_DISPLAY_LIB_COORDINATOR_GETTER_CLIENT_H_ |
| |
| #include <fidl/fuchsia.hardware.display/cpp/fidl.h> |
| #include <lib/fpromise/promise.h> |
| |
| namespace display { |
| |
| using CoordinatorClientEnd = fidl::ClientEnd<fuchsia_hardware_display::Coordinator>; |
| |
| // Connects to the fuchsia.hardware.display.Provider service from the |
| // component's environment. FIDL connection is asynchronously performed on |
| // `dispatcher`. |
| // |
| // Returns a promise which will be resolved when the display coordinator is |
| // obtained on success, if the display provider service is available and can |
| // be connected; otherwise returns a fpromise::error. |
| fpromise::promise<CoordinatorClientEnd, zx_status_t> GetCoordinator(async_dispatcher_t* dispatcher); |
| |
| // Same as `GetCoordinator(async_dispatcher_t*)`, |
| // but the FIDL connection is asynchronously performed on the default async |
| // dispatcher. |
| fpromise::promise<CoordinatorClientEnd, zx_status_t> GetCoordinator(); |
| |
| } // namespace display |
| |
| #endif // SRC_GRAPHICS_DISPLAY_LIB_COORDINATOR_GETTER_CLIENT_H_ |