commit | d71f4f66c3303cc855c06462c9fb43c1c8d27ecc | [log] [tgz] |
---|---|---|
author | Alexei Frolov <frolv@google.com> | Thu Nov 04 14:58:54 2021 -0700 |
committer | CQ Bot Account <pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com> | Tue Nov 09 19:38:49 2021 +0000 |
tree | 254e7273ff6e8e55901af8f13acd80ebdb84f194 | |
parent | 59910a47b1d091dc3895f4aef1ed6fdac8290d55 [diff] |
pw_transfer: Refactor protocol code This moves most of the transfer logic into a common context class that can be shared between and client and a server. The transfer service is updated to use this class. This class differs from the original transfer implementation in that is defines its operations in two parts: an immediate action and a deferred action. This is done to avoid blocking an RPC thread for too long with potentially long stream reads/writes. As part of this, the transfer service now requires a memory buffer in which data can be staged for later use. Change-Id: I8bfe51ee76a883e6611a20aa0f1d95a2f18e1fba Requires: pigweed-internal:17300 Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/67032 Commit-Queue: Alexei Frolov <frolv@google.com> Reviewed-by: Wyatt Hepler <hepler@google.com>
Pigweed is an open source collection of embedded-targeted libraries–or as we like to call them, modules. These modules are building blocks and infrastructure that enable faster and more reliable development on small-footprint MMU-less 32-bit microcontrollers like the STMicroelectronics STM32L452 or the Nordic nRF52832.
For more information please see our website: https://pigweed.dev/