template <>

class Server

Defined at line 1666 of file fidling/gen/sdk/fidl/fuchsia.virtualization/fuchsia.virtualization/cpp/fidl/fuchsia.virtualization/cpp/natural_messaging.h

Public Methods

void Create (CreateRequest & request, CreateCompleter::Sync & completer)

Create a VMM configured with the provided config. This instantiates all devices and loads

the kernel without starting the VCPU or device dispatch loops.

Possible errors:

- ALREADY_RUNNING: A VMM instance is already running, and must be stopped before being

recreated.

All other errors are related to VMM initialization.

void Bind (BindRequest & request, BindCompleter::Sync & completer)

Binds to the Guest protocol for an initialized guest.

This operation must be called between `Create` and `Stop`, otherwise the provided channel

will be immediately closed.

void Run (RunCompleter::Sync & completer)

Start the primary VCPU and any dispatch loop. This will not return until the VMM stops

running. On a clean shutdown (either guest or client initiated) this will return success.

Possible errors:

- ALREADY_RUNING: The VMM has already been started.

- NOT_CREATED: Run was called before the VMM was created.

- CONTROLLER_FORCED_HALT: Stop was called on a running VMM.

- VCPU_START_FAILURE: Failed to start the primary VCPU.

- VCPU_RUNTIME_FAILURE: A VCPU encountered a fatal error while running the guest.

void Server ()

Defined at line 1669 of file fidling/gen/sdk/fidl/fuchsia.virtualization/fuchsia.virtualization/cpp/fidl/fuchsia.virtualization/cpp/natural_messaging.h

void Stop (StopCompleter::Sync & completer)

Stop a running VMM. Returns once the dispatch loops have stopped. After Stop returns,

Create and then Run can be called again.

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 ~Server ()

Defined at line 1670 of file fidling/gen/sdk/fidl/fuchsia.virtualization/fuchsia.virtualization/cpp/fidl/fuchsia.virtualization/cpp/natural_messaging.h