[roll third_party/pigweed] pw_log_rpc: Create Log RPC service & streams

An RpcLogStream matches a Multisink::Drain with an RPC writer and is
identified by the RPC channel ID. A persistent log stream can be created
by assigning an open writer to the RpcLogStream, or can be set when the
stream is inactive by the RPC Log service.
A map is provided to collect all log streams, persistent and dynamic. It
makes it easy to assign a writer to a log stream, or to flush all the
log streams.
Flushing is delegated to whatever owns the log stream map. Included is a
single thread, single Multisink::Listener that sequentially flushes the
log streams. Future work can make use of a work queue.

Test: sample app using raw strings log entries works with pw_console
calling:
```for payload in rpcs.pw.log.LogService.Listen.invoke():
    for entry in payload.entries:
        LOG.info("%s", entry.message)```

Original-Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/56001

https://pigweed.googlesource.com/pigweed/pigweed
third_party/pigweed Rolled-Commits: 505be03e3b3729f..5e645b2d2671d7f
Roller-URL: https://ci.chromium.org/b/8837091003655514529
Cq-Cl-Tag: roller-builder:pigweed-experimental-roller
Cq-Cl-Tag: roller-bid:8837091003655514529
CQ-Do-Not-Cancel-Tryjobs: true
Change-Id: Ia4c703b1dc71b41f37439b2d3e76e135c5b6507d
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/experimental/+/59781
Bot-Commit: Pigweed Integration Roller <pigweed-integration-roller@pigweed.google.com.iam.gserviceaccount.com>
Commit-Queue: Pigweed Integration Roller <pigweed-integration-roller@pigweed.google.com.iam.gserviceaccount.com>
1 file changed
tree: ad41e7e791c183077c9fa587d642c8e564301fc0
  1. applications/
  2. build_overrides/
  3. pw_board_led/
  4. pw_board_led_arduino/
  5. pw_board_led_host/
  6. pw_board_led_stm32cube/
  7. pw_board_led_stm32f429i_disc1/
  8. pw_spin_delay/
  9. pw_spin_delay_arduino/
  10. pw_spin_delay_host/
  11. pw_spin_delay_stm32cube/
  12. pw_spin_delay_stm32f429i_disc1/
  13. pw_sys_io_stm32cube/
  14. targets/
  15. third_party/
  16. tools/
  17. .gitattributes
  18. .gitignore
  19. .gitmodules
  20. .gn
  21. activate.bat
  22. banner.txt
  23. bootstrap.bat
  24. bootstrap.sh
  25. BUILD.gn
  26. BUILDCONFIG.gn
  27. env_setup.json
  28. navbar.md
  29. PW_PLUGINS
  30. README.md
README.md

Pigweed Experimental

This repository contains experimental pigweed modules.

Repository setup

Clone this repo with --recursive to get all required submodules.

git clone --recursive https://pigweed.googlesource.com/pigweed/experimental

This will pull the Pigweed source repository into third_party/pigweed. If you already cloned but forgot to --recursive run git submodule update --init to pull all submodules.