Files
sdk/pkg/dart_service_protocol_shared
Sigurd Meldgaard 2fe05bd568 Reland "Migrate to use pub workspace"
This is a reland of commit b9b77058a9

Original change's description:
> Migrate to use pub workspace
>
> Use `pub get` to generate `.dart_tool/package_config.json` on gclient sync.
>
> All pkg/ (and a few third_party) packages that are developed inside the sdk repo are included in the workspace from the root `pubspec.yaml`.
>
> All dependencies that are pulled in via DEPS are added as path dependencies via `dependency_overrides` in the root `pubspec.yaml`.
>
> Bug: https://github.com/dart-lang/sdk/issues/56220
> Change-Id: I38c12b608c68da54c57821116cf9aa6696936746
> Tested: relies on CQ of existing tests. Should have no effect on functionality
> CoreLibraryReviewExempt: only core library change is adding a `// ignore:` comment. Should have no influence on functionality
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/397164
> Commit-Queue: Sigurd Meldgaard <sigurdm@google.com>
> Reviewed-by: Alexander Thomas <athom@google.com>

Bug: https://github.com/dart-lang/sdk/issues/56220
Change-Id: I29afabade2d2447dea05121cb87ff50bb21a4b76
Cq-Include-Trybots: luci.dart.try:flutter-linux-try,flutter-web-try
Tested: relies on CQ of existing tests. Should have no effect on functionality
CoreLibraryReviewExempt: only core library change is adding a `//
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/415561
Commit-Queue: Sigurd Meldgaard <sigurdm@google.com>
Reviewed-by: Alexander Thomas <athom@google.com>
2025-03-20 06:19:16 -07:00
..
2023-11-16 21:00:29 +00:00

An unlisted package for sharing code for service events and stream management between Dart SDK internal services.

The Dart Developer Service and Dart Tooling Daemon are the main consumers of this package.

Expected SLO: this package is maintained for our own tooling; we may not be able to respond to all issues and may only address the ones that we ourselves encounter.

Details

This package helps handle some of the plumbing required to setup client communication for a service. The main behavior that it helps with is:

  • StreamManager
    • allows a client to subscribe/cancel to a stream with streamListen/streamCancel.
    • allows a client to post a message to a stream with postEvent.
  • Client, an interface that ensures the client is equipped to:
    • handle method requests with sendRequest.
    • handle receiving a message sent to a stream with streamNotify.
  • ClientManager, keeps track of clients connected to a service.
    • addClient should be called when a client connects to your service.
    • removeClient should be called when it disconnects.

Usage

To see an example of how dart_service_protocol_shared is used see: