blob: ed0539604dae1e953a6ab93fbe467fcfdcb73960 [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 <lib/driver/component/cpp/node_add_args.h>
namespace fdf {
namespace fcd = fuchsia_component_decl;
fcd::Offer MakeOffer(std::string_view service_name, std::string_view instance_name) {
auto service = fcd::OfferService{{
.source_name = std::string(service_name),
.target_name = std::string(service_name),
}};
auto mapping = fcd::NameMapping{{
.source_name = std::string(instance_name),
.target_name = "default",
}};
service.renamed_instances() = std::vector{std::move(mapping)};
auto includes = std::string("default");
service.source_instance_filter() = std::vector{std::move(includes)};
return fcd::Offer::WithService(service);
}
fcd::wire::Offer MakeOffer(fidl::AnyArena& arena, std::string_view service_name,
std::string_view instance_name) {
auto offer = fcd::wire::OfferService::Builder(arena);
offer.source_name(arena, service_name);
offer.target_name(arena, service_name);
fidl::VectorView<fcd::wire::NameMapping> mappings(arena, 1);
mappings[0].source_name = fidl::StringView(arena, instance_name);
mappings[0].target_name = fidl::StringView(arena, "default");
offer.renamed_instances(mappings);
fidl::VectorView<fidl::StringView> includes(arena, 1);
includes[0] = fidl::StringView(arena, "default");
offer.source_instance_filter(includes);
return fcd::wire::Offer::WithService(arena, offer.Build());
}
} // namespace fdf