package com.github.shansun.sparrow.actor.util; import java.util.Collection; import java.util.Map; import com.github.shansun.sparrow.actor.builder.ActorManagerBuilder; import com.github.shansun.sparrow.actor.api.Actor; import com.github.shansun.sparrow.actor.api.Message; import com.github.shansun.sparrow.actor.spi.ActorManager; /** * Actor工具 * * @author: lanbo <br> * @version: 1.0 <br> * @date: 2012-7-23 */ public final class Actors { final static ActorManager actorManager = ActorManagerBuilder.newBuilder().withThreadCount(10).build(); static { actorManager.initialize(); } public static Actor createActor(Class<? extends Actor> clazz) { return actorManager.createActor(clazz); } public static Actor createActor(Class<? extends Actor> clazz, Map<String, Object> options) { return actorManager.createActor(clazz, options); } public static boolean startActor(Actor actor) { return actorManager.startActor(actor); } public static boolean detachActor(String name) { return actorManager.detachActor(name); } public static boolean detachActor(Actor actor) { return actorManager.detachActor(actor); } public static Actor createAndStartActor(Class<? extends Actor> clazz) { return actorManager.createAndStartActor(clazz); } public static Actor createAndStartActor(Class<? extends Actor> clazz, Map<String, Object> options) { return actorManager.createAndStartActor(clazz, options); } public static int send(Message message, Actor sourceActor, String targetName) { return actorManager.send(message, sourceActor, targetName); } public static int send(Message message, Actor sourceActor, String[] targetNames) { return actorManager.send(message, sourceActor, targetNames); } public static int send(Message message, Actor sourceActor, Collection<String> targetNames) { return actorManager.send(message, sourceActor, targetNames); } public static int broadcast(Message message, Actor sourceActor) { return actorManager.broadcast(message, sourceActor); } public static void terminateAndWait() { actorManager.terminateAndWait(); } public static void terminate() { actorManager.terminate(); } }