juglr
Class MulticastActor

java.lang.Object
  extended by juglr.Actor
      extended by juglr.MulticastActor

public class MulticastActor
extends Actor

Asynchronously forward incoming messages to a collection of delegates based on a given strategy. For cases where you want to forward messages to a single actor out of a given set see DelegatingActor.

See Also:
DelegatingActor

Nested Class Summary
static interface MulticastActor.Strategy
          Used by MulticastActor to determine which addresses to relay a given message to
 
Constructor Summary
MulticastActor(Actor... delegates)
           
MulticastActor(Address... delegates)
          Create a new multicast actor forwarding all incoming messages to all members of delegates.
MulticastActor(java.lang.Iterable<Address> delegates)
          Create a new multicast actor forwarding all incoming messages to all members of delegates.
MulticastActor(MulticastActor.Strategy strategy)
          Create a new multicast actor forwarding all incoming messages to all delegates determined by a given MulticastActor.Strategy.
 
Method Summary
static MulticastActor newForActors(Actor... delegates)
           
static MulticastActor newForActors(java.lang.Iterable<Actor> delegates)
           
 void react(Message msg)
          Asynchronously send msg to all addresses determined by calling MulticastActor.Strategy.recipients(juglr.Message)
 void start()
          Invoke MulticastActor.Strategy.start()
 
Methods inherited from class juglr.Actor
await, awaitMessage, awaitTimeout, getAddress, getBus, send, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

MulticastActor

public MulticastActor(Address... delegates)
Create a new multicast actor forwarding all incoming messages to all members of delegates.

Parameters:
delegates - the collection of delegates to forward all messages to

MulticastActor

public MulticastActor(java.lang.Iterable<Address> delegates)
Create a new multicast actor forwarding all incoming messages to all members of delegates.

Parameters:
delegates - the collection of delegates to forward all messages to

MulticastActor

public MulticastActor(MulticastActor.Strategy strategy)
Create a new multicast actor forwarding all incoming messages to all delegates determined by a given MulticastActor.Strategy.

Parameters:
strategy - the MulticastActor.Strategy used to determine the message recipients

MulticastActor

public MulticastActor(Actor... delegates)
Method Detail

newForActors

public static MulticastActor newForActors(java.lang.Iterable<Actor> delegates)

newForActors

public static MulticastActor newForActors(Actor... delegates)

react

public void react(Message msg)
Asynchronously send msg to all addresses determined by calling MulticastActor.Strategy.recipients(juglr.Message)

Specified by:
react in class Actor
Parameters:
msg - the incoming message

start

public void start()
Invoke MulticastActor.Strategy.start()

Overrides:
start in class Actor