commit | 7f8403954edf7a51a060d0107f80927b8b83fc1c | [log] [tgz] |
---|---|---|
author | Yifei Teng <yifeit@fuchsia.infra.roller.google.com> | Tue May 17 00:34:15 2022 +0000 |
committer | Copybara-Service <copybara-worker@google.com> | Mon May 16 17:35:35 2022 -0700 |
tree | 8e26bcb7019bc379058dd3c8f6ca2a49495144f2 | |
parent | f94f135e4dfd20818291f161f0ccccd39521538b [diff] |
[roll] Roll fuchsia [fidl][cpp] Start of natural sync calls Adds fidl::SyncClient and fidl::Call following the sketch in https://fuchsia.googlesource.com/fuchsia/+/refs/heads/main/src/lib/fidl/cpp/docs/structure-of-unified-cpp-fidl-bindings.md#natural-api_synchronous. We already have two code paths for making a synchronous call, one for Zircon channel (which requires the caller to provide storage), and another for driver (whose messages bring along an arena for storage). Those code paths also automatically decode the message as part of the call, which doesn't work for natural types with their own decoding logic. To not end up with 4 different code paths (whether caller provides storage X whether decoding is in-place), this CL starts a generalized storage concept, outlined below: - OutgoingMessage::Call always takes a MessageStorageViewBase*. - For a Zircon channel, the caller passes ChannelMessageStorageView, which references some buffer span and handle spans. - For a driver channel, the caller will pass a DriverStorageView, which references a |fdf::Arena*| that can hold the received arena backing the received message. (To be added in a future CL). - No more auto-decoding within OutgoingMessage::Call. Both wire types and natural types will be symmetrical and each add their own decoding logic afterwards. Because the change cuts across bprosnitz@'s generated code serialization changes, I did not migrate every existing usage of OutgoingMessage::Call to the new code path. That will follow once we've landed the big encoding/decoding changes. Original-Bug: 60240 Original-Bug: 100472 Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/679151 Original-Revision: 6c88f12e63fd786c7b9de7ccc91fedfa84e7087b GitOrigin-RevId: b74b9910bca4c6665626fb21e23ed1cbb7f3ec9d Change-Id: Iaf66f7725804f73f7499db734f60bc786965fdd3
This repository contains Fuchsia's Global Integration manifest files.
All changes should be made to the internal version of this repository. Our infrastructure automatically updates this version when the internal one changes.
Currently all changes must be made by a Google employee. Non-Google employees wishing to make a change can ask for assistance via the IRC channel #fuchsia
on Freenode.
First install Jiri.
Next run:
$ jiri init $ jiri import minimal https://fuchsia.googlesource.com/integration $ jiri update
Third party projects should have their own subdirectory in ./third_party
.