MakeSturdyRef

From Erights

(Difference between revisions)
Jump to: navigation, search
m (what else to add?)
(correct, expand with all msgs)
Line 1: Line 1:
-
the functions makeSturdyRef(obj)/1 and makeSturdyRef(obj, expireDate)/2 return an SturdyReference that will persist with the vat when the vats [[timeMachine]] saves it to disk.
+
[[makeSturdyRef]] is used to register objects so that SturdyRefs to them exist. It differs from [[IdentityMgr]] in that it provides ''persistent'' (when used with [[timeMachine]]) registrations.
-
That means that the sturdyrefs so made will be valid across vat restarts.
+
==Protocol==
 +
 
 +
{{XXX|MarkM: Assuming you wrote it, your permission is requested to copy the doc text from SturdyRefMaker.java.}}
 +
 
 +
{{XXX|Review: Type of expiration date field. Distinguish finite from infinite time.}}
 +
 
 +
{{instance msgdoc|tearOffRoots|1|<var>optOldRoots</var> :[[nullOk]]<nowiki>[</nowiki>[[FlexMap]]<nowiki>]</nowiki>, <var>optTimeMachine</var> [[nullOk]]<nowiki>[</nowiki>[[any]]<nowiki>]</nowiki>|[[FlexMap]]}}
 +
 
 +
{{unspecified message}}
 +
 
 +
{{instance msgdoc|run|1|<var>obj</var> :[[any]]|[[SturdyRef]]}}
 +
 
 +
{{unspecified message}}
 +
 
 +
{{instance msgdoc|run|2|<var>obj</var> :[[any]], <var>optExpirationDate</var> :[[int]]|[[SturdyRef]]}}
 +
 
 +
{{unspecified message}}
 +
 
 +
{{instance msgdoc|vow|1|<var>obj</var> :[[any]]|[[vow]]<nowiki>[</nowiki>[[SturdyRef]]<nowiki>]</nowiki>}}
 +
 
 +
{{unspecified message}}
 +
 
 +
{{instance msgdoc|vow|2|<var>obj</var> :[[any]], <var>optExpirationDate</var> :[[int]]|[[vow]]<nowiki>[</nowiki>[[SturdyRef]]<nowiki>]</nowiki>}}
 +
 
 +
{{unspecified message}}
 +
 
 +
{{instance msgdoc|make|1|<var>obj</var> :[[any]]|[[Tuple]]<nowiki>[</nowiki>[[SturdyRef]], [[Runnable]]<nowiki>]</nowiki>}}
 +
 
 +
{{unspecified message}}
 +
 
 +
{{instance msgdoc|make|2|<var>obj</var> :[[any]], <var>optExpirationDate</var> :[[int]]|[[Tuple]]<nowiki>[</nowiki>[[SturdyRef]], [[Runnable]]<nowiki>]</nowiki>}}
 +
 
 +
{{unspecified message}}
 +
 
 +
{{instance msgdoc|temp|1|<var>obj</var> :[[any]]|[[vow]]<nowiki>[</nowiki>[[SturdyRef]]<nowiki>]</nowiki>}}
 +
 
 +
{{unspecified message}}
 +
 
 +
{{instance msgdoc|temp|2|<var>obj</var> :[[any]], <var>optExpirationDate</var> :[[int]]|[[vow]]<nowiki>[</nowiki>[[SturdyRef]]<nowiki>]</nowiki>}}
 +
 
 +
{{unspecified message}}
 +
 
 +
{{instance msgdoc|onRevival|3|<var>reactor</var> :[[any]], <var>verb</var> :[[String]], <var>args</var> :Tuple<nowiki>[</nowiki>[[any]]<nowiki>]</nowiki>|[[vow]]<nowiki>[</nowiki>[[SturdyRef]]<nowiki>]</nowiki>}}
 +
 
 +
{{unspecified message}}
 +
 
 +
{{XXX|Give rationale for this being (r,v,a) rather than just reactor and run/1.}}
{{stub}}
{{stub}}
 +
[[Category:CapTP]]

Revision as of 12:55, 9 August 2009

makeSturdyRef is used to register objects so that SturdyRefs to them exist. It differs from IdentityMgr in that it provides persistent (when used with timeMachine) registrations.

Contents

Protocol

XXX MarkM: Assuming you wrote it, your permission is requested to copy the doc text from SturdyRefMaker.java.

XXX Review: Type of expiration date field. Distinguish finite from infinite time.

tearOffRoots/1

Signature: tearOffRoots(optOldRoots :nullOk[FlexMap], optTimeMachine nullOk[any]) :FlexMap

The specification for this message has not been written.

run/1

Signature: run(obj :any) :SturdyRef

The specification for this message has not been written.

run/2

Signature: run(obj :any, optExpirationDate :int) :SturdyRef

The specification for this message has not been written.

vow/1

Signature: vow(obj :any) :vow[SturdyRef]

The specification for this message has not been written.

vow/2

Signature: vow(obj :any, optExpirationDate :int) :vow[SturdyRef]

The specification for this message has not been written.

make/1

Signature: make(obj :any) :Tuple[SturdyRef, Runnable]

The specification for this message has not been written.

make/2

Signature: make(obj :any, optExpirationDate :int) :Tuple[SturdyRef, Runnable]

The specification for this message has not been written.

temp/1

Signature: temp(obj :any) :vow[SturdyRef]

The specification for this message has not been written.

temp/2

Signature: temp(obj :any, optExpirationDate :int) :vow[SturdyRef]

The specification for this message has not been written.

onRevival/3

Signature: onRevival(reactor :any, verb :String, args :Tuple[any]) :vow[SturdyRef]

The specification for this message has not been written.

XXX Give rationale for this being (r,v,a) rather than just reactor and run/1.

This page is a stub; it should be expanded with more information. If doing so, check the original E web site and the mailing list archives for content which could be moved into this page.
Personal tools
more tools