Contents

Protocol

getRcvr/0

If this vat cannot currently connect to the host vat, then the result will resolve to a broken ref; however, a broken ref can also be what the host vat returns as the referent. (XXX do we want to provide for distinguishing these cases?)

This operation can only be done while the local comm system is on the air; otherwise it throws XXX specify exception.

getRcvr/2

(XXX this text is copied with changes from the old JavaDoc; see notes)

Like getRcvr() but doesn't resolve the result until we connect to the object's hosting vat. (XXX what is the observable distinction of "doesn't resolve...until..."? What does getRcvr/0 do differently?)
Note that the result may still resolve to broken, if the object's hosting vat, for example, no longer has this object registered for lookup by this SturdyRef (no longer has an entry for this SturdyRef's SwissNumber). (XXX isn't this true for both?)

This operation can only be done while the local comm system is on the air; otherwise it throws XXX specify exception.

pollMillis is a polling interval hint. (XXX the following is an implementation description; rewrite as spec) Until we have VLS rendezvous support, the best we can do is poll the attempt to connect to the hosting vat. pollMillis says how often we should do so, and thereby tradeoff CPU/comm against promptness. Once we have VLS rendezvous support, then we will post a long-lived query with the relevant VLSes, and refresh this query at a frequency determined by those VLSes, not by our client. This refreshing is also a polling loop, but can be long without impeding the responsiveness of getting connected.

timeout is the time in absMillis (since the epoch) at which we should give up trying to connect. Once the time has passed, we should resolve the result to broken rather than continuing to poll or refresh. A value of -1 means to keep trying forever.

This operation can only be done while the local comm system is on the air; otherwise it throws XXX specify exception.