[][src]Module olympia_engine::remote

Handle communicating with an emulator over a remote channel

This is useful for running the emulator in for example another thread or a web worker.

Usage

A front end should provide its own implementation of the RemoteEmulatorChannel and RemoteEventListeners traits that uses the front end environments own mechanisms to communicate, and then create an instance of RemoteEmulator.

The front end can then use methods on RemoteEmulator to control the emulator

Structs

AdapterEventWrapper

Type-safe wrapper around dynamic event listeners

CommandId

An identifier for a running command

EmulatorCommandExecution

A command executing in a remote emulator

ExecTime

The time (in seconds) the emulator has been running

QueryMemoryResponse

The memory data at a requested address

QueryRegistersResponse

The values of all 16-bit registers

RemoteEmulator

An emulator that is executing elsewhere

UiBreakpoint

Enums

EmulatorCommand

A single command for the remote emulator execute

EmulatorResponse

A response to an emulator command

Error

A problem encountered by a remote emulator

Event

Events from a remote emulator

EventSendError

Failures to send an event

ExecMode

The running/not running state of the remote emulator

LoadRomError

A failure to load a ROM

RemoteEmulatorOutput

Events, Errors and Responses from a remote emulator

Traits

RemoteEmulatorChannel

Transfers events/commands to remote emulator

RemoteEventListeners

A mechanism for listening to remote events

Sender

An item that can have events sent to it

Type Definitions

Result

Result of a remote emulator operation