org.erights.e.elib.serial
Class RemoteDelivery
java.lang.Object
|
+--org.erights.e.elib.ref.Ref
|
+--org.erights.e.elib.ref.StemCell
|
+--org.erights.e.elib.serial.RemoteDelivery
- All Implemented Interfaces:
- Amplifiable, Callable, Marker, ObjectInputValidation, PassByConstruction, Persistent, Serializable
- public class RemoteDelivery
- extends StemCell
Safe: A RemoteDelivery unserializes into the result of
recipient <- verb(args...)
allowing arbitrary execution *after* deserialization, but only within
capability constraints. All pointers serialized as pointers to the
RemoteDelivery will be deserialized as pointing to the promise for the
result of the send. This may violate static types or other constraints,
and cause deserialization to fail.
- Author:
- Mark S. Miller
- See Also:
- Serialized Form
Constructor Summary |
RemoteDelivery(Object recipient,
String verb,
Object[] args)
Enabled: Descibe an invocation to be run on the other side of a serialization
barrier of some sort. |
Method Summary |
void |
__printOn(TextWriter out)
Suppressed: |
private Object |
readResolve()
Invoked directly by the ObjectInputStream following desrialization of
the entire RemoteDelivery to get the object to use instead. |
Methods inherited from class org.erights.e.elib.ref.Ref |
broken, disconnected, getAllegedType, getOptProxyHandler, GetRefMaker, ignore, isBroken, isDeepFrozen, isDeepPassByCopy, isEventual, isFar, isNear, isPassByProxy, isPBC, isPersistent, isResolved, isSameEver, isSelfish, isSelfless, isSettled, makeBufferingPromise, makeSwitchablePromise, optBroken, optProblem, optSealedDispatch, optSealedDispatch, optShorten, promise, resolution, resolution, respondsTo, sendMsg, state, toCallable, toRef, toString, whenBroken, whenBrokenOnly, whenResolved, whenResolvedOnly |
serialVersionUID
private static final long serialVersionUID
myRecipient
private final Object myRecipient
myVerb
private final String myVerb
myArgs
private final Object[] myArgs
RemoteDelivery
public RemoteDelivery(Object recipient,
String verb,
Object[] args)
- Enabled: Descibe an invocation to be run on the other side of a serialization
barrier of some sort.
- Parameters:
recipient
- receives the messageverb
- the message name (selector, method name)args
- the message arguments
readResolve
private Object readResolve()
throws ObjectStreamException
- Invoked directly by the ObjectInputStream following desrialization of
the entire RemoteDelivery to get the object to use instead.
ObjectStreamException
__printOn
public void __printOn(TextWriter out)
throws IOException
- Suppressed:
IOException
comments?