blob: 74227bbcec20a1b4fb80bc1e571e2f4089afb167 [file]
#include <fidl/{{fidl_library_name}}/cpp/fidl.h>
#include <lib/zx/vmo.h>
#include <zircon/assert.h>
#include <zircon/process.h>
#include <zircon/processargs.h>
#include <zircon/status.h>
#include <zircon/syscalls.h>
#include <iostream>
#include <string>
#include <vector>
#include "{{cpp_namespace}}.h"
namespace {{cpp_namespace}} {
{{> helpers }}
{{> vmo_parse_helpers }}
Config Config::TakeFromStartupHandle() noexcept {
// Get the VMO containing FIDL config
zx_handle_t config_vmo_handle = zx_take_startup_handle(PA_VMO_COMPONENT_CONFIG);
ZX_ASSERT_MSG(
config_vmo_handle != ZX_HANDLE_INVALID,
"Config VMO handle must be provided and cannot already have been taken.");
zx::vmo config_vmo(config_vmo_handle);
return Config::CreateFromVmo(std::move(config_vmo));
}
Config Config::CreateFromVmo(zx::vmo config_vmo) noexcept {
{{> vmo_parse }}
}
zx::vmo Config::ToVmo() const noexcept {
{{> vmo_create }}
}
}