Commit Graph

5 Commits

Author SHA1 Message Date
Yecheng Zhao
321fb69c2a pw_protobuf: Adds a Message class for parsing
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>
2021-09-18 00:35:32 +00:00
Alexei Frolov
fad8e85548 pw_transfer: Use files in integration tests
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>
2021-09-02 20:29:26 +00:00
Wyatt Hepler
7b62e93287 pw_stream: Rework the stream classes
- Derive all stream classes from a common base Stream class.
- Introduce Seek() and Tell() methods.
- Implement helper functions for seeking in pw_stream/seek.h.
- Expand the pw_stream documentation.
- Update existing Stream classes.

Requires: pigweed-internal:14760
Change-Id: I55671f0a14c73deef76cd0e17e831ec62462458a
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/56820
Pigweed-Auto-Submit: Wyatt Hepler <hepler@google.com>
Commit-Queue: Wyatt Hepler <hepler@google.com>
Reviewed-by: Ewout van Bekkum <ewout@google.com>
Reviewed-by: Keir Mierle <keir@google.com>
Reviewed-by: Armando Montanez <amontanez@google.com>
2021-08-19 19:13:07 +00:00
Wyatt Hepler
9b54e5ea63 pw_stream: Log in SocketStream; configure port in host RPC server
- 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>
2021-08-03 01:09:58 +00:00
Akira Baruah
40a9c3f128 bazel: Rename BUILD to BUILD.bazel
Avoids potential naming conflicts with other build systems.

Change-Id: Ib6569cc05c028d5680879724304b17dfc1fae0af
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/49306
Commit-Queue: Akira Baruah <akirabaruah@google.com>
Reviewed-by: Rob Mohr <mohrr@google.com>
Reviewed-by: Nathaniel Brough <nathaniel.brough@gmail.com>
Reviewed-by: Wyatt Hepler <hepler@google.com>
2021-07-14 19:36:41 +00:00