package com.example; import akka.actor.typed.ActorRef; import akka.actor.typed.Behavior; import akka.actor.typed.javadsl.AbstractBehavior; import akka.actor.typed.javadsl.ActorContext; import akka.actor.typed.javadsl.Behaviors; import akka.actor.typed.javadsl.Receive; public class AkkaMainSystem extends AbstractBehavior { public static class Create { } public static Behavior create() { return Behaviors.setup(AkkaMainSystem::new); } private AkkaMainSystem(ActorContext context) { super(context); } @Override public Receive createReceive() { return newReceiveBuilder().onMessage(Create.class, this::onCreate).build(); } private Behavior onCreate(Create command) { //#create-actors Expression expression = Expression.generateExpression(6, 9); Expression testExp = Expression.generateExpression(4,9); ActorRef computer = this.getContext().spawn(Actor.create("Rechner"), "Rechner"); computer.tell(new Actor.PrintAndEvaluate(testExp)); //Vergleich mit dem Output der Berechnung System.out.println("SOLL: "+testExp.toString()+ " Wert:" +testExp.eval() + " Runtime: " + testExp.runtime()); return this; } }