org.codehaus.gpars

groovyx.gpars.actor
[Java] Class DynamicDispatchActor

java.lang.Object
  groovyx.gpars.serial.WithSerialId
      groovyx.gpars.actor.impl.MessageStream
          groovyx.gpars.actor.Actor
              groovyx.gpars.actor.AbstractLoopingActor
                  groovyx.gpars.actor.DynamicDispatchActor

@SuppressWarnings({"ThisEscapedInObjectConstruction"})
public class DynamicDispatchActor
extends AbstractLoopingActor

A pooled actor allowing for an alternative structure of the message handling code. In general DynamicDispatchActor repeatedly scans for messages and dispatches arrived messages to one of the onMessage(message) methods defined on the actor.

 final class MyActor extends DynamicDispatchActor {*      void onMessage(String message) {*          println 'Received string'
 }*      void onMessage(Integer message) {*          println 'Received integer'
 }*      void onMessage(Object message) {*          println 'Received object'
 }*      void onMessage(NullObject nullMessage) {*          println 'Received null'
 }*} 
Method when {...} provides an alternative way to define message handlers
Authors:
Vaclav Pech, Alex Tkachman, Dierk Koenig Date: Jun 26, 2009


Field Summary
private static long serialVersionUID

 
Fields inherited from class AbstractLoopingActor
core, currentSender, currentTimerTask, serialVersionUID, stoppedFlag, terminatedFlag, terminatingFlag, timeoutCounter
 
Fields inherited from class Actor
ACTOR_HAS_ALREADY_BEEN_STARTED, AFTER_START, CANNOT_SEND_REPLIES_NO_SENDER_HAS_BEEN_REGISTERED, EMPTY_ARGUMENTS, ON_DELIVERY_ERROR, RESPONDS_TO, START_MESSAGE, STOP_MESSAGE, TERMINATE_MESSAGE, TIMEOUT, TIMEOUT_MESSAGE, currentActorPerThread, currentThread, joinLatch, onStop, parallelGroup, serialVersionUID, timer
 
Fields inherited from class MessageStream
serialVersionUID
 
Fields inherited from class WithSerialId
serialHandle, serialVersionUID
 
Constructor Summary
DynamicDispatchActor()

Creates a new instance without any when handlers registered

 
Method Summary
DynamicDispatchActor become(groovy.lang.Closure closure)

Executes the supplied closure in the context of the actor to set all when() handlers

void when(groovy.lang.Closure closure)

 
Methods inherited from class AbstractLoopingActor
cancelCurrentTimeoutTask, doStart, getCore, getSender, hasBeenStopped, initialize, isActive, isFair, makeFair, reply, replyIfExists, runEnhancedWithoutRepliesOnMessages, send, setParallelGroup, setTimeout, silentStart, start, stop, sweepNextMessage, terminate
 
Methods inherited from class Actor
callDynamic, createActorMessage, createRemoteHandle, deregisterCurrentActorWithThread, getJoinLatch, getParallelGroup, handleException, handleInterrupt, handleStart, handleTermination, handleTimeout, hasBeenStopped, isActive, isActorThread, join, join, join, join, onStop, registerCurrentActorWithThread, sendAndContinue, setParallelGroup, silentStart, start, stop, sweepNextMessage, sweepQueue, terminate, threadBoundActor
 
Methods inherited from class MessageStream
call, getRemoteClass, leftShift, reInterrupt, send, send, send, sendAndWait, sendAndWait, sendAndWait
 
Methods inherited from class WithSerialId
createRemoteHandle, getOrCreateSerialHandle, getRemoteClass, writeReplace
 
Methods inherited from class java.lang.Object
java.lang.Object#wait(long), java.lang.Object#wait(), java.lang.Object#wait(long, int), java.lang.Object#equals(java.lang.Object), java.lang.Object#toString(), java.lang.Object#hashCode(), java.lang.Object#getClass(), java.lang.Object#notify(), java.lang.Object#notifyAll()
 

Field Detail

serialVersionUID

private static final long serialVersionUID


 
Constructor Detail

DynamicDispatchActor

public DynamicDispatchActor()
Creates a new instance without any when handlers registered


 
Method Detail

become

public final DynamicDispatchActor become(groovy.lang.Closure closure)
Executes the supplied closure in the context of the actor to set all when() handlers
Parameters:
closure - A sequence of when() handlers to set on the actor
Returns:
This actor to allow for method chaining


when

public final void when(groovy.lang.Closure closure)


 

Copyright © 2008–2010 Václav Pech. All Rights Reserved.