|
Akka/Scala example source code file (FactorialBackend.java)
The FactorialBackend.java Akka example source codepackage sample.cluster.factorial; import java.math.BigInteger; import java.util.concurrent.Callable; import scala.concurrent.Future; import akka.actor.UntypedActor; import akka.dispatch.Mapper; import static akka.dispatch.Futures.future; import static akka.pattern.Patterns.pipe; //#backend public class FactorialBackend extends UntypedActor { @Override public void onReceive(Object message) { if (message instanceof Integer) { final Integer n = (Integer) message; Future<BigInteger> f = future(new Callable<BigInteger>() { public BigInteger call() { return factorial(n); } }, getContext().dispatcher()); Future<FactorialResult> result = f.map( new Mapper<BigInteger, FactorialResult>() { public FactorialResult apply(BigInteger factorial) { return new FactorialResult(n, factorial); } }, getContext().dispatcher()); pipe(result, getContext().dispatcher()).to(getSender()); } else { unhandled(message); } } BigInteger factorial(int n) { BigInteger acc = BigInteger.ONE; for (int i = 1; i <= n; ++i) { acc = acc.multiply(BigInteger.valueOf(i)); } return acc; } } //#backend Other Akka source code examplesHere is a short list of links related to this Akka FactorialBackend.java source code file: |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2021 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.