Important Notice: Our web hosting provider recently started charging us for additional visits, which was unexpected. In response, we're seeking donations. Depending on the situation, we may explore different monetization options for our Community and Expert Contributors. It's crucial to provide more returns for their expertise and offer more Expert Validated Answers or AI Validated Answers. Learn more about our hosting issue here.

How does revocation work in E?

Revocation
0
Posted

How does revocation work in E?

0

Revocation is done in user code using a pattern such as the following. This also shows the power of lambda-based facets:class revokerMaker(var underlying) :any { def forwarder { # Miranda methods other than printOn and reactToLostClient # generally shouldn’t be transparently forwarded to the underlying. to printOn(out) { underlying printOn(out) } to reactToLostClient(problem) { underlying reactToLostClient(problem) } # forwards all non-Miranda methods, so this pattern should # only be used if ‘underlying’ is known not to have any # protocol that gives itself away. Therefore, this is only # for ‘Cooperative (with the underlying) revocability’. # Uncooperative revocability requires the Membrane pattern, # for which we eventually expect to provide a library. delegate { underlying } } def revoker { to revoke() { underlying := null } # Dead-man switch: if a holder of the revoking facet is lost # (due to a network partition), then we can no longer locally # know that they don’t wish to revok

Related Questions

What is your question?

*Sadly, we had to bring back ads too. Hopefully more targeted.

Experts123