Implement a `Message` class for processing common field types such as
uint32, string, bytes, map<string, >, repeated and nested messages. The
class works on top of protobuf::StreamDecoder. The purpose is to wrap
low level details of StreamDecoder operations, and have an abstraction
layer where proto messages and fields can be represented and handled
like objects. This faciliates implementation of higher level
functionalities that involves sophisticated processing logic on proto
messages, such as update bundle verification.
Bug: 456
Change-Id: I75c30e183c9df0e260f251f51363d3dc79d36703
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/60780
Reviewed-by: Armando Montanez <amontanez@google.com>
Reviewed-by: Ali Zhang <alizhang@google.com>
Commit-Queue: Yecheng Zhao <zyecheng@google.com>
This updates pw_transfer's integration tests to use local files as
transfer targets. This makes it simpler to coordinate between C++ and
Python and verify the results of transfer operations.
As part of this, a stream reader and writer that operate on files using
the C++ standard library are added to pw_stream.
Change-Id: I93efe3526ea9569b2f67a371fc89872cca0492a8
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/57342
Commit-Queue: Alexei Frolov <frolv@google.com>
Reviewed-by: Wyatt Hepler <hepler@google.com>
- Log erros when errors occur while creating / configuring the socket.
- Use UNKNOWN status instead of INTERNAL for errors. INTERNAL is used
for serious internal errors (e.g. an invariant has been violated).
- Make the port used by the host system_rpc_server configurable.
- CHECK that socket setup succeeds in the host system_rpc_server.
- In the system_rpc_server, print logs to stderr in addition to the
HDLC channel. Otherwise, it's not possible to see logs from before the
socket it setup.
Change-Id: I3475676ff7bb1461b3b72f603a27638f292f87eb
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/55505
Pigweed-Auto-Submit: Wyatt Hepler <hepler@google.com>
Reviewed-by: Alexei Frolov <frolv@google.com>
Commit-Queue: Auto-Submit <auto-submit@pigweed.google.com.iam.gserviceaccount.com>