edu.vub.at.actors
Interface ATActorMirror

All Superinterfaces:
ATConversions, ATObject
All Known Implementing Classes:
NATActorMirror

public interface ATActorMirror
extends ATObject


Field Summary
static ATSymbol _IN_
           
static ATSymbol _OUT_
           
static ATSymbol _PROVIDED_
           
static ATSymbol _REQUIRED_
           
 
Method Summary
 ATAsyncMessage base_createMessage(ATObject sender, ATSymbol selector, ATTable arguments)
          Creates a first-class message in the language.
 ATObject base_install_(ATClosure code)
          def protocol := install: { code } Installs a meta-object protocol into this actor.
 ATObject base_provide(ATStripe topic, ATObject service)
          This mechanism is the most basic mechanism to provide a service.
 ATObject base_require(ATStripe topic, ATClosure handler, ATBoolean bool)
          This mechanism is the most basic mechanism to require a service.
 ATObject base_send(ATAsyncMessage message)
          This method implements the default asynchronous message sending semantics for this particular actor.
 
Methods inherited from interface edu.vub.at.objects.ATObject
base__opeql__opeql_, base_init, base_new, meta_addField, meta_addMethod, meta_assignField, meta_assignVariable, meta_clone, meta_defineField, meta_doesNotUnderstand, meta_eval, meta_extend, meta_getDynamicParent, meta_getLexicalParent, meta_getStripes, meta_grabField, meta_grabMethod, meta_invoke, meta_isCloneOf, meta_isRelatedTo, meta_isStripedWith, meta_listFields, meta_listMethods, meta_lookup, meta_newInstance, meta_pass, meta_print, meta_quote, meta_receive, meta_resolve, meta_respondsTo, meta_select, meta_send, meta_share
 
Methods inherited from interface edu.vub.at.objects.coercion.ATConversions
asAmbientTalkObject, asJavaClassUnderSymbiosis, asJavaObjectUnderSymbiosis, asNativeBoolean, asNativeException, asNativeFarReference, asNativeFraction, asNativeNumber, asNativeNumeric, asNativeTable, asNativeText, base_asActorMirror, base_asAsyncMessage, base_asBegin, base_asBoolean, base_asClosure, base_asDefinition, base_asExpression, base_asFarReference, base_asField, base_asHandler, base_asMessage, base_asMessageCreation, base_asMethod, base_asMirror, base_asNumber, base_asSplice, base_asStatement, base_asStripe, base_asSymbol, base_asTable, base_asUnquoteSplice, base_asVariableAssignment, base_isBoolean, base_isCallFrame, base_isClosure, base_isFarReference, base_isMessageCreation, base_isMethod, base_isMirror, base_isSplice, base_isStripe, base_isSymbol, base_isTable, base_isUnquoteSplice, base_isVariableAssignment, isAmbientTalkObject, isJavaObjectUnderSymbiosis, isNativeBoolean, isNativeField, isNativeText
 

Field Detail

_IN_

public static final ATSymbol _IN_

_OUT_

public static final ATSymbol _OUT_

_REQUIRED_

public static final ATSymbol _REQUIRED_

_PROVIDED_

public static final ATSymbol _PROVIDED_
Method Detail

base_createMessage

public ATAsyncMessage base_createMessage(ATObject sender,
                                         ATSymbol selector,
                                         ATTable arguments)
                                  throws InterpreterException
Creates a first-class message in the language. Note that upon creation the message does not have a receiver yet. This field will be set once the message is actually being sent, a fact which can be intercepted by overriding the sendTo base-level method.

Throws:
InterpreterException

base_send

public ATObject base_send(ATAsyncMessage message)
                   throws InterpreterException
This method implements the default asynchronous message sending semantics for this particular actor. In addition to the ability to override the send meta- operation on a single object to have specific adaptions, this hook allows the programmer to modify the message sending semantics for all objects inside an actor. The default implementation ensures the correct passing of messages when they transgress the boundaries of the sending actor.

Throws:
InterpreterException

base_provide

public ATObject base_provide(ATStripe topic,
                             ATObject service)
                      throws InterpreterException
This mechanism is the most basic mechanism to provide a service. It requires a separate service description and an object offering the service. The return value is a publication object which allows cancelling the service offer.

Throws:
InterpreterException

base_require

public ATObject base_require(ATStripe topic,
                             ATClosure handler,
                             ATBoolean bool)
                      throws InterpreterException
This mechanism is the most basic mechanism to require a service. The return value is a subscription object which allows cancelling the service offer.

Parameters:
bool - - if true, the subscription is permanent, if false, once the subscription has been satisfied, it is automatically cancelled.
Throws:
InterpreterException

base_install_

public ATObject base_install_(ATClosure code)
                       throws InterpreterException
def protocol := install: { code } Installs a meta-object protocol into this actor. The given code is executed in the context of a new object whose dynamic parent is the actor's old mirror. Hence, in the context of code, 'super' can be used to invoke the old meta-level behaviour.

Parameters:
code - meta-level code that overrides an actor's MOP methods
Returns:
a protocol object that allows to uninstall the MOP code
Throws:
InterpreterException