Implement finding a primary based on the shard name and do basic wiring of Distribute...
[controller.git] / opendaylight / md-sal / sal-distributed-datastore / src / main / java / org / opendaylight / controller / cluster / datastore / DistributedDataStore.java
index 8d5b0c2f4a65f49d188786ad9f5927f29939166e..c87f1abb21c74cf585d2fcfe6a4057b0c7143e99 100644 (file)
@@ -8,6 +8,8 @@
 
 package org.opendaylight.controller.cluster.datastore;
 
+import akka.actor.ActorRef;
+import akka.actor.ActorSystem;
 import org.opendaylight.controller.md.sal.common.api.data.AsyncDataBroker;
 import org.opendaylight.controller.md.sal.common.api.data.AsyncDataChangeListener;
 import org.opendaylight.controller.sal.core.spi.data.DOMStore;
@@ -23,29 +25,34 @@ import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
  *
  */
 public class DistributedDataStore implements DOMStore {
-
-    @Override
-    public <L extends AsyncDataChangeListener<InstanceIdentifier, NormalizedNode<?, ?>>> ListenerRegistration<L> registerChangeListener(InstanceIdentifier path, L listener, AsyncDataBroker.DataChangeScope scope) {
-        return new ListenerRegistrationProxy();
-    }
-
-    @Override
-    public DOMStoreTransactionChain createTransactionChain() {
-        return new TransactionChainProxy();
-    }
-
-    @Override
-    public DOMStoreReadTransaction newReadOnlyTransaction() {
-        return new TransactionProxy();
-    }
-
-    @Override
-    public DOMStoreWriteTransaction newWriteOnlyTransaction() {
-        return new TransactionProxy();
-    }
-
-    @Override
-    public DOMStoreReadWriteTransaction newReadWriteTransaction() {
-        return new TransactionProxy();
-    }
+  private final ActorRef shardManager;
+
+  public DistributedDataStore(ActorSystem actorSystem, String type) {
+    shardManager = actorSystem.actorOf(ShardManager.props(type));
+  }
+
+  @Override
+  public <L extends AsyncDataChangeListener<InstanceIdentifier, NormalizedNode<?, ?>>> ListenerRegistration<L> registerChangeListener(InstanceIdentifier path, L listener, AsyncDataBroker.DataChangeScope scope) {
+    return new ListenerRegistrationProxy();
+  }
+
+  @Override
+  public DOMStoreTransactionChain createTransactionChain() {
+    return new TransactionChainProxy();
+  }
+
+  @Override
+  public DOMStoreReadTransaction newReadOnlyTransaction() {
+    return new TransactionProxy();
+  }
+
+  @Override
+  public DOMStoreWriteTransaction newWriteOnlyTransaction() {
+    return new TransactionProxy();
+  }
+
+  @Override
+  public DOMStoreReadWriteTransaction newReadWriteTransaction() {
+    return new TransactionProxy();
+  }
 }