Miranda protocol
From Erights
(Difference between revisions)
Kevin Reid (Talk | contribs) (add no-same-verb constraint) |
(let's have an explicit verb type) |
||
(5 intermediate revisions not shown) | |||
Line 6: | Line 6: | ||
* [[Miranda optSealedDispatch|__optSealedDispatch]](<var>brand</var> :[[any]]) :[[any]] | * [[Miranda optSealedDispatch|__optSealedDispatch]](<var>brand</var> :[[any]]) :[[any]] | ||
* [[Miranda optUncall|__optUncall]]() :[[Portrayal]] | * [[Miranda optUncall|__optUncall]]() :[[Portrayal]] | ||
- | * [[Miranda order|__order]](<var>verb</var> :[[ | + | * [[Miranda order|__order]](<var>verb</var> :[[Verb]], <var>args</var> :[[List]]) :[[Tuple]]<nowiki>[</nowiki>any, any<nowiki>]</nowiki> |
* [[Miranda printOn|__printOn]](<var>out</var> :[[TextWriter]]) :[[void]] | * [[Miranda printOn|__printOn]](<var>out</var> :[[TextWriter]]) :[[void]] | ||
* [[Miranda reactToLostClient|__reactToLostClient]](<var>problem</var>) :[[void]] | * [[Miranda reactToLostClient|__reactToLostClient]](<var>problem</var>) :[[void]] | ||
- | * [[Miranda respondsTo|__respondsTo]](<var>verb</var> :[[ | + | * [[Miranda respondsTo|__respondsTo]](<var>verb</var> :[[Verb]], <var>arity</var> :[[int]]) :[[Boolean]] |
* [[Miranda whenBroken|__whenBroken]](<var>reactor</var>) :[[void]] | * [[Miranda whenBroken|__whenBroken]](<var>reactor</var>) :[[void]] | ||
* [[Miranda whenMoreResolved|__whenMoreResolved]](<var>reactor</var>) :[[void]] | * [[Miranda whenMoreResolved|__whenMoreResolved]](<var>reactor</var>) :[[void]] |
Latest revision as of 03:52, 7 August 2011
Every normal object responds to these miranda messages; miranda methods are provided for them.
- __conformTo(guard :Guard) :any
- __getAllegedType() :TypeDesc
- __getPropertySlot(property :String) :Slot
- __optSealedDispatch(brand :any) :any
- __optUncall() :Portrayal
- __order(verb :Verb, args :List) :Tuple[any, any]
- __printOn(out :TextWriter) :void
- __reactToLostClient(problem) :void
- __respondsTo(verb :Verb, arity :int) :Boolean
- __whenBroken(reactor) :void
- __whenMoreResolved(reactor) :void
Constraints on revision of this protocol
No version of the Miranda protocol shall introduce a Miranda message which has the same verb but different arity as another Miranda message. Rationale: This ensures that if a plumbing object forwards messages, adding leading/trailing arguments, it will not invoke a Miranda method of the forwarding target.
See also
- MirandaMethods class in E-on-Java
- CapTP protocol documentation, section “Helper Messages”