template <>

class WireServer

Defined at line 8678 of file fidling/gen/sdk/fidl/fuchsia.pkg/fuchsia.pkg/cpp/fidl/fuchsia.pkg/cpp/wire_messaging.h

Pure-virtual interface to be implemented by a server.

This interface uses typed channels (i.e. |::fidl::ClientEnd

<

::fuchsia_pkg::PackageResolver>|

and |::fidl::ServerEnd

<

::fuchsia_pkg::PackageResolver>|).

Public Methods

void Resolve (::fuchsia_pkg::wire::PackageResolverResolveRequest * request, ResolveCompleter::Sync & completer)

Populates or updates the cache of a package using an absolute package

URL.

Ensures that a package, and any transitive subpackages, are on the local

filesystem.

+ request `package_url` the absolute package URL for a package. The

following link describes the format:

https://fuchsia.dev/fuchsia-src/concepts/packages/package_url.

Resource paths are not allowed.

+ request `dir` a request for a directory that will be resolved when the

package has been successfully cached.

+ returns a `resolved_context`, which can be passed to

`ResolveWithContext`, with a relative URL, to resolve a subpackage of

this package.

* error indicates failure. See `ResolveError` for values and error

scenarios.

void ResolveWithContext (::fuchsia_pkg::wire::PackageResolverResolveWithContextRequest * request, ResolveWithContextCompleter::Sync & completer)

Populates or updates the cache of a package using either an absolute or

a relative package URL. If relative, the package will be resolved

relative to the supplied `context`.

Ensures that a package is on the local filesystem.

+ request `package_url` the absolute or relative package URL for a

package. If absolute, the `context` is ignored, and the behavior is

identical to calling `Resolve()`. A relative `package_url` is a

subpackage name.

+ request `context` a `ResolutionContext` associated with a previously

resolved package, for resolving subpackages relative to that package.

+ request `dir` a request for a directory that will be resolved when the

package has been successfully cached.

+ returns a `resolved_context`, which can be passed to a subsequent call

to `ResolveWithContext`, with a relative URL, to resolve a subpackage

of this package or subpackage.

* error indicates failure. See `ResolveError` for values and error

scenarios.

void GetHash (::fuchsia_pkg::wire::PackageResolverGetHashRequest * request, GetHashCompleter::Sync & completer)

Determines the hash of a package.

+ request `package_url` the package URL for a package.

- response `meta_far_blob_id` the hash of the package.

* error a zx_status value indicating failure. One of the following:

* `ZX_ERR_INTERNAL` if the resolver encountered an otherwise unspecified error

while handling the request.

* `ZX_ERR_NOT_FOUND` if the package does not exist in the repository specified by

`package_url`.

* `ZX_ERR_BAD_STATE` if the resolver does not know about the repository specified by

`package_url`.

void WireServer ()

Defined at line 8681 of file fidling/gen/sdk/fidl/fuchsia.pkg/fuchsia.pkg/cpp/fidl/fuchsia.pkg/cpp/wire_messaging.h

Handler bind_handler (async_dispatcher_t * dispatcher)

|bind_handler| returns a handler that binds incoming connections to this

server implementation.

The returned handler borrows the server instance.

The server must outlive the provided |dispatcher|. Only after

the dispatcher is shutdown will it be safe to destroy the servers.

The server should not be moved.

void ~WireServer ()

Defined at line 8682 of file fidling/gen/sdk/fidl/fuchsia.pkg/fuchsia.pkg/cpp/fidl/fuchsia.pkg/cpp/wire_messaging.h