class Resolver
Defined at line 1353 of file fidling/gen/sdk/fidl/fuchsia.process/fuchsia.process/hlcpp/fuchsia/process/cpp/fidl.h
An interface for resolving names to executables and library loaders.
An executable itself is often not sufficient to create a working process
because many executables also load shared libraries. On Fuchsia, there is no
global pool of shared libraries. Instead, every process has an associated
`fuchsia.ldsvc.Loader`, which provides access to a private pool of shared
libraries appropriate for that process.
This interface provides a protocol for resolving a name into both the
`zx.Handle:VMO` for the executable and the `fuchsia.ldsvc.Loader` for its
associated shared libraries.
This interface is rarely used directly. Instead, `fdio_spawn` and
`fdio_spawn_etc` use this interface internally when they try to run a file
with a `#!resolve` directive.
Public Members
static const char[] Name_
Public Methods
void ~Resolver ()
void Resolve (::std::string name, ResolveCallback callback)
Resolves the given `name` to an `executable` and an shared library
loader.
If present, the `executable` is suitable for use as the `executable`
property of `LaunchInfo` -- in particular, it will have `ZX_RIGHT_EXECUTE`.
If present, the `ldsvc` is suitable for use as the `PA_LDSVC_LOADER`
handle when launching the process.
For example, the resolver might locate the given `name` inside a package
and return the executable binary from the package as well as a shared
library loader scoped to that package.