2 * Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
9 package org.opendaylight.controller.dummy.datastore;
11 import akka.actor.ActorContext;
12 import akka.actor.Props;
13 import akka.actor.UntypedActor;
14 import akka.japi.Creator;
16 public class DummyShardManager extends UntypedActor {
17 public DummyShardManager(Configuration configuration, String memberName, String[] shardNames,
18 String type) throws Exception {
19 new DummyShardsCreator(configuration, context(), memberName, shardNames, type).create();
23 public void onReceive(Object message) throws Exception {
27 public static Props props(Configuration configuration, String memberName, String[] shardNames, String type) {
28 return Props.create(new DummyShardManagerCreator(configuration, memberName, shardNames, type));
31 private static class DummyShardManagerCreator implements Creator<DummyShardManager> {
33 private final Configuration configuration;
34 private final String memberName;
35 private final String[] shardNames;
36 private final String type;
38 DummyShardManagerCreator(Configuration configuration, String memberName, String[] shardNames, String type) {
39 this.configuration = configuration;
40 this.memberName = memberName;
41 this.shardNames = shardNames;
46 public DummyShardManager create() throws Exception {
47 return new DummyShardManager(configuration, memberName, shardNames, type);
51 private static class DummyShardsCreator {
52 private final Configuration configuration;
53 private final ActorContext actorSystem;
54 private final String memberName;
55 private final String[] shardNames;
56 private final String type;
58 DummyShardsCreator(Configuration configuration, ActorContext actorSystem, String memberName,
59 String[] shardNames, String type) {
60 this.configuration = configuration;
61 this.actorSystem = actorSystem;
62 this.memberName = memberName;
63 this.shardNames = shardNames;
68 for (String shardName : shardNames) {
69 String shardId = memberName + "-shard-" + shardName + "-" + type;
70 actorSystem.actorOf(DummyShard.props(configuration, shardId), shardId);