Package org.akka.essentials.calculator.example3

Source Code of org.akka.essentials.calculator.example3.CalculatorActorSytem

package org.akka.essentials.calculator.example3;

import org.akka.essentials.calculator.CalculatorInt;

import akka.actor.ActorRef;
import akka.actor.ActorSystem;
import akka.actor.TypedActor;
import akka.actor.TypedProps;
import akka.dispatch.Await;
import akka.dispatch.Future;
import akka.pattern.Patterns;
import akka.util.Duration;
import akka.util.Timeout;

import com.typesafe.config.ConfigFactory;

public class CalculatorActorSytem {

  public static void main(String[] args) throws Exception {

    ActorSystem _system = ActorSystem.create("TypedActorsExample",
        ConfigFactory.load().getConfig("TypedActorExample"));

    CalculatorInt calculator = TypedActor.get(_system).typedActorOf(
        new TypedProps<SupervisorActor>(CalculatorInt.class,
            SupervisorActor.class),"supervisorActor");

    // Get access to the ActorRef
    ActorRef calActor = TypedActor.get(_system).getActorRefFor(calculator);
    // call actor with a message
    calActor.tell("Hi there",calActor);
   
    //wait for child actor to get restarted
    Thread.sleep(500);
   
    // Invoke the method and wait for result
    Timeout timeout = new Timeout(Duration.parse("5 seconds"));
      Future<Object> future = Patterns.ask(calActor, Integer.valueOf(10), timeout);
      Integer result = (Integer) Await.result(future, timeout.duration());
   
    System.out.println("Result from child actor->" + result);

    //wait before shutting down the system
    Thread.sleep(500);
   
    _system.shutdown();

  }

}
TOP

Related Classes of org.akka.essentials.calculator.example3.CalculatorActorSytem

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.