| #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 }} |
| } |
| |
| } |