org.erights.e.elib.serial
Interface DeepPassByCopy

All Superinterfaces:
Marker, PassByConstruction, Selfless, Serializable
All Known Implementing Classes:
AstroTag, NetConfig, Node, ObjectID, SourceSpan, Term, Twine

public interface DeepPassByCopy
extends PassByConstruction, Selfless

Untamed: Marker interface that declares objects to be transitively PassByCopy, ie, to be transitively Selfless, Transparent, and PassByConstruction.

The boot-comm-system will only pass PassByConstruction objects that are DeepPassByCopy. It does so by sharing the actual object between vats, so any private mutable state, such as a semantics-free cache (e.g. Term.myHeight) had better be mutated in a thread-safe fashion.

Author:
Mark S. Miller

Field Summary
static ConstSubclassSet HONORARY
          Enabled: HONORARY (effectively) contains all the classes named in HONORED_NAMES and all their subclasses.
static String[] HONORED_NAMES
          Enabled: List of Java library classes whose instances are transitively PassByCopy.
static long serialVersionUID
          Enabled:
 
Methods inherited from interface org.erights.e.elib.tables.Selfless
getSpreadUncall
 

Field Detail

serialVersionUID

public static final long serialVersionUID
Enabled:


HONORED_NAMES

public static final String[] HONORED_NAMES
Enabled: List of Java library classes whose instances are transitively PassByCopy.

This is because, since they are JavaSoft's, we obviously can't go back and modify them to implement the DeepPassByCopy interface, but we equally obviously want people to be able to use them as if we had.


HONORARY

public static final ConstSubclassSet HONORARY
Enabled: HONORARY (effectively) contains all the classes named in HONORED_NAMES and all their subclasses.



comments?