X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-distributed-datastore%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fdatastore%2FShardReadTransaction.java;h=3978d757a1e64b8a01ed4e529c1d90e158040d27;hp=ec526d4fc07e01486fa7ed0cac9aa28b54e609c3;hb=2634ed7138a343f051ff6452ccc7edd3abfc0c3a;hpb=4d1709660b7af992d4c382a2a38debb5c7d64fb9 diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardReadTransaction.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardReadTransaction.java index ec526d4fc0..3978d757a1 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardReadTransaction.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardReadTransaction.java @@ -9,60 +9,36 @@ package org.opendaylight.controller.cluster.datastore; import akka.actor.ActorRef; -import akka.actor.PoisonPill; -import com.google.common.base.Optional; import com.google.common.base.Preconditions; import org.opendaylight.controller.cluster.datastore.jmx.mbeans.shard.ShardStats; -import org.opendaylight.controller.cluster.datastore.messages.CreateSnapshot; import org.opendaylight.controller.cluster.datastore.messages.DataExists; import org.opendaylight.controller.cluster.datastore.messages.ReadData; -import org.opendaylight.controller.cluster.datastore.utils.SerializationUtils; -import org.opendaylight.controller.cluster.raft.base.messages.CaptureSnapshotReply; -import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; -import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; /** + * Actor for a shard read transaction. + * * @author: syedbahm - * Date: 8/6/14 */ public class ShardReadTransaction extends ShardTransaction { private final AbstractShardDataTreeTransaction transaction; public ShardReadTransaction(AbstractShardDataTreeTransaction transaction, ActorRef shardActor, ShardStats shardStats) { - super(shardActor, shardStats, transaction.getId()); + super(shardActor, shardStats, transaction.getIdentifier()); this.transaction = Preconditions.checkNotNull(transaction); } @Override public void handleReceive(Object message) { - if (message instanceof CreateSnapshot) { - createSnapshot(); - } else if(ReadData.isSerializedType(message)) { + if (ReadData.isSerializedType(message)) { readData(transaction, ReadData.fromSerializable(message)); - } else if(DataExists.isSerializedType(message)) { + } else if (DataExists.isSerializedType(message)) { dataExists(transaction, DataExists.fromSerializable(message)); } else { super.handleReceive(message); } } - private void createSnapshot() { - - // This is a special message sent by the shard to send back a serialized snapshot of the whole - // data store tree. This transaction was created for that purpose only so we can - // self-destruct after sending the reply. - - final ActorRef sender = getSender(); - final ActorRef self = getSelf(); - final Optional> result = transaction.getSnapshot().readNode(YangInstanceIdentifier.EMPTY); - - byte[] serialized = SerializationUtils.serializeNormalizedNode(result.get()); - sender.tell(new CaptureSnapshotReply(serialized), self); - - self.tell(PoisonPill.getInstance(), self); - } - @Override protected AbstractShardDataTreeTransaction getDOMStoreTransaction() { return transaction;