f9816cdc35
Added a private RPC, _yieldControlToDDS, which DDS invokes once connected to the VM service. Once this method is called, the following happens: - The VM service stops accepting new web socket requests. - The VM service enters single client mode, where DDS is the single client. DDS can only place the VM service in single client mode when it is the only VM service client. If other clients are connected, DDS will fail to start and throw an exception. The purpose of this change is to simplify state management between the VM service and DDS. The plan is to delegate the following features to DDS: - Service extension management - Custom client name support - Isolate resume coordination for multiple clients Change-Id: I0b3143710d94ee9444a4894e24555f7ed1caf5ad Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/142564 Commit-Queue: Ben Konyi <bkonyi@google.com> Reviewed-by: Ryan Macnak <rmacnak@google.com>
This package is a work in-progress and the API may not be stable. Stay tuned for updates.
A package used to spawn the Dart Developer Service (DDS), which is used to communicate with a Dart VM Service instance and provide extended functionality to the core VM Service Protocol.
Functionality
Existing VM Service clients can issue both HTTP and websocket requests to a running DDS instance as if it were an instance of the VM Service itself. If a request corresponds to an RPC defined in the VM Service Protocol, DDS will forward the request and return the response from the VM Service. Requests corresponding to an RPC defined in the DDS Protocol will be handled directly by the DDS instance.