Commit 4985d55d authored by Ross Light's avatar Ross Light

Clarify RPC spec documentation based on mail thread

https://groups.google.com/d/topic/capnproto/_1kBtRSC51s/discussion
parent e651ac5f
...@@ -453,15 +453,14 @@ struct Call { ...@@ -453,15 +453,14 @@ struct Call {
# - Vat B dutifully forwards the bar() call to Carol. Let us call this forwarded call bar'(). # - Vat B dutifully forwards the bar() call to Carol. Let us call this forwarded call bar'().
# Notice that bar() and bar'() are travelling in opposite directions on the same network # Notice that bar() and bar'() are travelling in opposite directions on the same network
# link. # link.
# - The `Call` for bar'() has `sendResultsTo` set to `yourself`, with the value being the # - The `Call` for bar'() has `sendResultsTo` set to `yourself`.
# question ID originally assigned to the bar() call.
# - Vat A receives bar'() and delivers it to Carol. # - Vat A receives bar'() and delivers it to Carol.
# - When bar'() returns, Vat A immediately takes the results and returns them from bar(). # - When bar'() returns, Vat A sends a `Return` for bar'() to Vat B, with `resultsSentElsewhere`
# - Meanwhile, Vat A sends a `Return` for bar'() to Vat B, with `resultsSentElsewhere` set in # set in place of results.
# place of results.
# - Vat A sends a `Finish` for that call to Vat B.
# - Vat B receives the `Return` for bar'() and sends a `Return` for bar(), with # - Vat B receives the `Return` for bar'() and sends a `Return` for bar(), with
# `receivedFromYourself` set in place of the results. # `takeFromOtherQuestion` set in place of the results, with the value set to the question ID
# of bar'().
# - Vat A sends a `Finish` for the bar() call to Vat B.
# - Vat B receives the `Finish` for bar() and sends a `Finish` to bar'(). # - Vat B receives the `Finish` for bar() and sends a `Finish` to bar'().
thirdParty @7 :RecipientId; thirdParty @7 :RecipientId;
...@@ -781,7 +780,7 @@ struct Accept { ...@@ -781,7 +780,7 @@ struct Accept {
# Message type sent to pick up a capability hosted by the receiving vat and provided by a third # Message type sent to pick up a capability hosted by the receiving vat and provided by a third
# party. The third party previously designated the capability using `Provide`. # party. The third party previously designated the capability using `Provide`.
# #
# This message is also used to pick up a redirected return -- see `Return.redirect`. # This message is also used to pick up a redirected return -- see `Return.acceptFromThirdParty`.
questionId @0 :QuestionId; questionId @0 :QuestionId;
# A new question ID identifying this accept message, which will eventually receive a Return # A new question ID identifying this accept message, which will eventually receive a Return
...@@ -951,8 +950,8 @@ struct CapDescriptor { ...@@ -951,8 +950,8 @@ struct CapDescriptor {
# Hopefully this is unusual. # Hopefully this is unusual.
senderHosted @1 :ExportId; senderHosted @1 :ExportId;
# A capability newly exported by the sender. This is the ID of the new capability in the # A capability exported by the sender. This may or may not be a new ID in the sender's export
# sender's export table (receiver's import table). # table (receiver's import table).
senderPromise @2 :ExportId; senderPromise @2 :ExportId;
# A promise that the sender will resolve later. The sender will send exactly one Resolve # A promise that the sender will resolve later. The sender will send exactly one Resolve
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment