| commit | 153821c596d16655058d49b13a0e975b4b08154d | [log] [tgz] |
|---|---|---|
| author | Zachary Stewart <zstewart@fuchsia.infra.roller.google.com> | Mon Jul 25 17:06:41 2022 +0000 |
| committer | Copybara-Service <copybara-worker@google.com> | Mon Jul 25 10:10:13 2022 -0700 |
| tree | 20e75c17f88a936eff388034383de09e2b0c20da | |
| parent | efc216b8457273541f6b333204a805b1521448e5 [diff] |
[roll] Roll fuchsia [fidl][cpp] client side flexible method handling Implement client side handling for flexible methods. This includes sending the appropriate headers to indicate to the server that the method is flexible and handling unpacking the result union used by flexible methods. This increases the complexity of the logic needed to correctly unpack the result union. That logic was previously duplicated across WireResult, WireUnownedResult (multiple times!), and driver::WireUnownedResult. This was very error-prone as the logic/templates needed to correctly unpack the result union (if any) could be updated in one template without updating another template, and there was a risk of having bugs in some code paths but not others, which was very difficult to test for, especially since the architecture made many of those paths very hard to exercise in unit test situations. To deal with this, I created a BaseWireResult type which provides the storage used for the wire result, the Unwrap and related accessors (if applicable), and the logic for extracting the return value/error/transport error from the result union. This ensures that there is only one copy of that logic so it is the same for all WireResult types. Original-Bug: 88366 Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/692530 Original-Revision: 096d81efe903b8b3a5d800dbcd690d1ee1669ed1 GitOrigin-RevId: 062c6aab6312bc0756b62de6cb07885b0a60c164 Change-Id: Ie6390cf0ccf4565af79200006b357ce1fc109fc2
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.