com.caucho.amp.actor
Class ActorContextImpl

java.lang.Object
  extended by com.caucho.amp.actor.AmpActorContext
      extended by com.caucho.amp.actor.ActorContextImpl
All Implemented Interfaces:
AmpActor, AmpStream, AlarmListener, java.util.EventListener

public final class ActorContextImpl
extends AmpActorContext
implements AmpActor, AlarmListener

Handles the context for an actor, primarily including its query map.


Constructor Summary
ActorContextImpl(java.lang.String address, AmpActor actorStream, AmpMailboxFactory mailboxFactory)
           
 
Method Summary
 void close()
          Registers a callback future.
 void error(AmpActorRef to, AmpActorRef from, AmpEncoder encoder, AmpError error)
          Sends a message error to an ActorHolder, addressed by the Actor's address.
 AmpActorRef getActorRef()
           
 java.lang.String getAddress()
           
 AmpMailbox getMailbox()
           
 AmpMethodRef getMethod(java.lang.String methodName, AmpEncoder encoder)
           
 long getQueryTimeout()
           
 AmpStream getStream()
           
 void handleAlarm(Alarm alarm)
          Handles a callback from an alarm.
 void query(AmpMethodRef methodRef, java.lang.Object[] args, AmpQueryCallback cb, long timeout)
           
 void query(long id, AmpActorRef to, AmpActorRef from, AmpEncoder encoder, java.lang.String methodName, java.lang.Object... args)
          Sends a query/RPCinformation call The receiver of a query acts as a service and the caller acts as a client.
 void queryError(long id, AmpActorRef to, AmpActorRef from, AmpEncoder encoder, AmpError error)
          Sends a query error from a failed query.
 void queryResult(long id, AmpActorRef to, AmpActorRef from, AmpEncoder encoder, java.lang.Object result)
          Sends a query response for a query
 void send(AmpActorRef to, AmpActorRef from, AmpEncoder encoder, java.lang.String methodName, java.lang.Object... args)
          Sends a unidirectional message to an ActorHolder, addressed by the Actor's address.
 void setQueryTimeout(long timeout)
           
 java.lang.String toString()
           
 
Methods inherited from class com.caucho.amp.actor.AmpActorContext
beginCurrentActor, endCurrentActor, getCurrent, getCurrent, send
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

ActorContextImpl

public ActorContextImpl(java.lang.String address,
                        AmpActor actorStream,
                        AmpMailboxFactory mailboxFactory)
Method Detail

getAddress

public java.lang.String getAddress()
Specified by:
getAddress in class AmpActorContext

getMailbox

public AmpMailbox getMailbox()
Specified by:
getMailbox in class AmpActorContext

getActorRef

public AmpActorRef getActorRef()
Specified by:
getActorRef in class AmpActorContext

getStream

public AmpStream getStream()
Specified by:
getStream in class AmpActorContext

getMethod

public AmpMethodRef getMethod(java.lang.String methodName,
                              AmpEncoder encoder)
Specified by:
getMethod in interface AmpActor
Specified by:
getMethod in class AmpActorContext

getQueryTimeout

public long getQueryTimeout()

setQueryTimeout

public void setQueryTimeout(long timeout)

send

public final void send(AmpActorRef to,
                       AmpActorRef from,
                       AmpEncoder encoder,
                       java.lang.String methodName,
                       java.lang.Object... args)
Description copied from interface: AmpStream
Sends a unidirectional message to an ActorHolder, addressed by the Actor's address.

Specified by:
send in interface AmpStream
Parameters:
to - the target actor's address
from - the source actor's address

error

public void error(AmpActorRef to,
                  AmpActorRef from,
                  AmpEncoder encoder,
                  AmpError error)
Description copied from interface: AmpStream
Sends a message error to an ActorHolder, addressed by the Actor's address. Actor protocols may choose to send error messages if a message fails for some reason. In general, Actors should not rely on the delivery of error messages. If an error return is required, use an RPC query instead.

Specified by:
error in interface AmpStream
Parameters:
to - the target actor's address
from - the source actor's address
error - the message error

query

public void query(long id,
                  AmpActorRef to,
                  AmpActorRef from,
                  AmpEncoder encoder,
                  java.lang.String methodName,
                  java.lang.Object... args)
Description copied from interface: AmpStream
Sends a query/RPCinformation call The receiver of a query acts as a service and the caller acts as a client. Because BAM Actors are symmetrical, all Actors can act as services and clients for different RPC calls. The stream MUST send a queryResult or queryError to the client using the same id, because RPC clients rely on a response.

Specified by:
query in interface AmpStream
Parameters:
id - the query identifier used to match requests with responses
to - the service actor's address
from - the client actor's address

queryResult

public void queryResult(long id,
                        AmpActorRef to,
                        AmpActorRef from,
                        AmpEncoder encoder,
                        java.lang.Object result)
Description copied from interface: AmpStream
Sends a query response for a query

Specified by:
queryResult in interface AmpStream
Parameters:
id - the query identifier used to match requests with responses
to - the client actor's address
from - the service actor's address

queryError

public void queryError(long id,
                       AmpActorRef to,
                       AmpActorRef from,
                       AmpEncoder encoder,
                       AmpError error)
Description copied from interface: AmpStream
Sends a query error from a failed query.

Specified by:
queryError in interface AmpStream
Parameters:
id - the query identifier used to match requests with responses
to - the client actor's address
from - the service actor's address
error - additional error information

query

public void query(AmpMethodRef methodRef,
                  java.lang.Object[] args,
                  AmpQueryCallback cb,
                  long timeout)
Specified by:
query in class AmpActorContext

close

public void close()
Registers a callback future.


toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

handleAlarm

public void handleAlarm(Alarm alarm)
Description copied from interface: AlarmListener
Handles a callback from an alarm.

Specified by:
handleAlarm in interface AlarmListener