2023-05-03 12:02:18 +02:00
|
|
|
package com.example;
|
|
|
|
|
|
|
|
import akka.actor.typed.ActorRef;
|
|
|
|
import akka.actor.typed.Behavior;
|
2024-07-01 15:02:13 +02:00
|
|
|
import akka.actor.typed.javadsl.AbstractBehavior;
|
|
|
|
import akka.actor.typed.javadsl.ActorContext;
|
|
|
|
import akka.actor.typed.javadsl.Behaviors;
|
|
|
|
import akka.actor.typed.javadsl.Receive;
|
2023-05-03 12:02:18 +02:00
|
|
|
|
|
|
|
public class AkkaMainSystem extends AbstractBehavior<AkkaMainSystem.Create> {
|
|
|
|
|
|
|
|
public static class Create {
|
|
|
|
}
|
|
|
|
|
|
|
|
public static Behavior<Create> create() {
|
|
|
|
return Behaviors.setup(AkkaMainSystem::new);
|
|
|
|
}
|
|
|
|
|
|
|
|
private AkkaMainSystem(ActorContext<Create> context) {
|
|
|
|
super(context);
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public Receive<Create> createReceive() {
|
|
|
|
return newReceiveBuilder().onMessage(Create.class, this::onCreate).build();
|
|
|
|
}
|
|
|
|
|
|
|
|
private Behavior<Create> onCreate(Create command) {
|
|
|
|
//#create-actors
|
2024-07-01 15:02:13 +02:00
|
|
|
Expression expression = Expression.generateExpression(6, 9);
|
2024-07-02 14:54:25 +02:00
|
|
|
ActorRef<Actor.Message> computer = this.getContext().spawn(Actor.create("Rechner"), "Rechner");
|
2024-07-02 15:44:40 +02:00
|
|
|
computer.tell(new Actor.PrintAndEvaluate(expression));
|
2024-07-02 14:54:25 +02:00
|
|
|
//Vergleich mit dem Output der Berechnung
|
2024-07-02 15:44:40 +02:00
|
|
|
System.out.println("SOLL: "+expression+ " Wert:" +expression.eval() + " Runtime: " + expression.runtime());
|
2023-05-03 12:02:18 +02:00
|
|
|
return this;
|
|
|
|
}
|
|
|
|
}
|