blob: 015d01e3ac81ac8a56ed028fa717b24ac7fb81fe [file] [log] [blame]
// Copyright 2022 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 <fidl/fuchsia.compat.nodegroup.test/cpp/wire.h>
#include <lib/async/cpp/task.h>
#include <lib/driver/component/cpp/driver_base.h>
#include <lib/driver/component/cpp/driver_export.h>
#include <lib/driver/logging/cpp/logger.h>
namespace fcdt = fuchsia_compat_nodegroup_test;
namespace {
class TestCompositeDriver : public fdf::DriverBase {
public:
TestCompositeDriver(fdf::DriverStartArgs start_args,
fdf::UnownedSynchronizedDispatcher driver_dispatcher)
: fdf::DriverBase("node_group", std::move(start_args), std::move(driver_dispatcher)) {}
zx::result<> Start() override {
auto connect_result = incoming()->Connect<fcdt::Waiter>();
if (connect_result.is_error()) {
fdf::error("Failed to start node-group driver: {}", connect_result);
node().reset();
return connect_result.take_error();
}
const fidl::WireSharedClient<fcdt::Waiter> client{std::move(connect_result.value()),
dispatcher()};
[[maybe_unused]] auto result = client->Ack(ZX_OK);
return zx::ok();
}
};
} // namespace
FUCHSIA_DRIVER_EXPORT(TestCompositeDriver);