X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-distributed-datastore%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fdatastore%2Fpersisted%2FShardManagerSnapshot.java;h=93846758ec9eb5848e58773d64e395e3f9c90a03;hb=a3cecfd01d0ef8922530924e3ee9684eb03ee5d6;hp=f6be1b808f648efb915edd6aa5264b55d1831937;hpb=a66b0a0f12639e4cfb43bb92602407f09b849c3f;p=controller.git diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/ShardManagerSnapshot.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/ShardManagerSnapshot.java index f6be1b808f..93846758ec 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/ShardManagerSnapshot.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/ShardManagerSnapshot.java @@ -8,14 +8,19 @@ package org.opendaylight.controller.cluster.datastore.persisted; import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableMap; import java.io.Externalizable; import java.io.IOException; import java.io.ObjectInput; import java.io.ObjectOutput; import java.io.Serializable; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; import javax.annotation.Nonnull; +import org.opendaylight.controller.cluster.datastore.config.PrefixShardConfiguration; +import org.opendaylight.mdsal.dom.api.DOMDataTreeIdentifier; /** * Represents the persisted snapshot state for the ShardManager. @@ -47,6 +52,12 @@ public class ShardManagerSnapshot implements Serializable { for (String shard: snapshot.shardList) { out.writeObject(shard); } + + out.writeInt(snapshot.prefixShardConfiguration.size()); + for (Map.Entry prefixShardConfigEntry : snapshot.prefixShardConfiguration.entrySet()) { + out.writeObject(prefixShardConfigEntry.getKey()); + out.writeObject(prefixShardConfigEntry.getValue()); + } } @Override @@ -57,7 +68,14 @@ public class ShardManagerSnapshot implements Serializable { shardList.add((String) in.readObject()); } - snapshot = new ShardManagerSnapshot(shardList); + size = in.readInt(); + Map prefixShardConfiguration = new HashMap<>(size); + for (int i = 0; i < size; i++) { + prefixShardConfiguration.put((DOMDataTreeIdentifier) in.readObject(), + (PrefixShardConfiguration) in.readObject()); + } + + snapshot = new ShardManagerSnapshot(shardList, prefixShardConfiguration); } private Object readResolve() { @@ -66,9 +84,12 @@ public class ShardManagerSnapshot implements Serializable { } private final List shardList; + private final Map prefixShardConfiguration; - public ShardManagerSnapshot(@Nonnull final List shardList) { + public ShardManagerSnapshot(@Nonnull final List shardList, + final Map prefixShardConfiguration) { this.shardList = ImmutableList.copyOf(shardList); + this.prefixShardConfiguration = ImmutableMap.copyOf(prefixShardConfiguration); } public List getShardList() {