blob: a953ee286deb0a27ab209e22998d76dd49364929 [file] [log] [blame]
// 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 "src/virtualization/bin/guest_manager/guest_services.h"
#include <lib/fidl/cpp/vector.h>
#include <lib/zx/channel.h>
GuestServices::GuestServices(fuchsia::virtualization::LaunchInfo launch_info)
: launch_info_(std::move(launch_info)) {
services_.AddService<fuchsia::virtualization::vmm::LaunchInfoProvider>(
[this](fidl::InterfaceRequest<
fuchsia::virtualization::vmm::LaunchInfoProvider>
request) { binding_.Bind(std::move(request)); });
}
fuchsia::sys::ServiceListPtr GuestServices::ServeDirectory() {
auto services = fuchsia::sys::ServiceList::New();
services->names.push_back(
fuchsia::virtualization::vmm::LaunchInfoProvider::Name_);
services->provider = services_.AddBinding();
return services;
}
void GuestServices::GetLaunchInfo(GetLaunchInfoCallback callback) {
callback(std::move(launch_info_));
}