orc.runtime.sites
Class Site
java.lang.Object
orc.runtime.values.Value
orc.runtime.sites.Site
- All Implemented Interfaces:
- Callable
- Direct Known Subclasses:
- Apply, ClassProxy, DotSite, Error, EvalSite, IsNone, IsSome, KilimSite, Let, Ltimer, MethodProxy, None, ObjectProxy, PartialSite, PopLtimer, Print, Println, PushLtimer, Rtimer, Some, ThreadedObjectProxy, ThreadedPartialSite, ThreadedSite, TryCons, TryNil
public abstract class Site
- extends Value
- implements Callable
Base class for all sites
- Author:
- wcook, dkitchin
Constructor Summary |
Site()
|
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Site
public Site()
createCall
public void createCall(Token callToken,
java.util.List<java.lang.Object> args,
Node nextNode)
throws TokenException
- Invoked by a Call to invoke a site. The argument list is
scanned to make sure that all parameters are bound.
If an unbound parameter is found, the call is placed on a
queue and nothing more is done.
Once all parameters are bound, their values are collected
and the corresponding subclass (the actual site) is called.
- Specified by:
createCall
in interface Callable
- Parameters:
callToken
- token for which the call is being made: points to the call nodeargs
- argument listnextNode
- next node after the call node, to which the result should be sent
- Throws:
TokenException
- See Also:
Callable.createCall(orc.runtime.Token, java.util.List, orc.runtime.nodes.Node)
enterTransaction
protected void enterTransaction(Transaction transaction)
throws NontransactionalSiteException
- Throws:
NontransactionalSiteException
callSite
public abstract void callSite(Args args,
Token caller)
throws TokenException
- Must be implemented by subclasses to implement the site behavior
- Parameters:
args
- list of argument valuescaller
- where the result should be sent
- Throws:
TokenException
accept
public <E> E accept(Visitor<E> visitor)
- Overrides:
accept
in class Value
type
public Type type()
throws TypeException
- Throws:
TypeException