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%2Fpersisted%2FFrontendClientMetadata.java;h=35859bb1c947a33497aed15c59023c810d845f89;hp=4598f68a449c003e43e801af465d50c900f1f3d5;hb=bf54edf4eb5fffb48e005d07a0a20c8971b77a99;hpb=12fcdfe39aa26dcba7fd3bb4d4c68e3d02e65c51 diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/FrontendClientMetadata.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/FrontendClientMetadata.java index 4598f68a44..35859bb1c9 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/FrontendClientMetadata.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/FrontendClientMetadata.java @@ -7,42 +7,37 @@ */ package org.opendaylight.controller.cluster.datastore.persisted; +import static java.util.Objects.requireNonNull; + import com.google.common.base.MoreObjects; -import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableList; -import com.google.common.collect.ImmutableRangeSet; -import com.google.common.collect.ImmutableRangeSet.Builder; -import com.google.common.collect.Range; -import com.google.common.collect.RangeSet; -import com.google.common.primitives.UnsignedLong; import java.io.DataInput; import java.io.DataOutput; import java.io.IOException; -import java.util.ArrayList; import java.util.Collection; -import java.util.Set; +import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.controller.cluster.access.concepts.ClientIdentifier; +import org.opendaylight.controller.cluster.datastore.utils.ImmutableUnsignedLongSet; import org.opendaylight.yangtools.concepts.Identifiable; import org.opendaylight.yangtools.concepts.WritableObject; -import org.opendaylight.yangtools.concepts.WritableObjects; public final class FrontendClientMetadata implements Identifiable, WritableObject { - private final Collection currentHistories; - private final RangeSet purgedHistories; - private final ClientIdentifier identifier; + private final @NonNull ImmutableList currentHistories; + private final @NonNull ImmutableUnsignedLongSet purgedHistories; + private final @NonNull ClientIdentifier identifier; - public FrontendClientMetadata(final ClientIdentifier identifier, final RangeSet purgedHistories, + public FrontendClientMetadata(final ClientIdentifier identifier, final ImmutableUnsignedLongSet purgedHistories, final Collection currentHistories) { - this.identifier = Preconditions.checkNotNull(identifier); - this.purgedHistories = ImmutableRangeSet.copyOf(purgedHistories); + this.identifier = requireNonNull(identifier); + this.purgedHistories = requireNonNull(purgedHistories); this.currentHistories = ImmutableList.copyOf(currentHistories); } - public Collection getCurrentHistories() { + public ImmutableList getCurrentHistories() { return currentHistories; } - public RangeSet getPurgedHistories() { + public ImmutableUnsignedLongSet getPurgedHistories() { return purgedHistories; } @@ -54,12 +49,7 @@ public final class FrontendClientMetadata implements Identifiable> ranges = purgedHistories.asRanges(); - out.writeInt(ranges.size()); - for (final Range r : ranges) { - WritableObjects.writeLongs(out, r.lowerEndpoint().longValue(), r.upperEndpoint().longValue()); - } + purgedHistories.writeTo(out); out.writeInt(currentHistories.size()); for (final FrontendHistoryMetadata h : currentHistories) { @@ -69,24 +59,15 @@ public final class FrontendClientMetadata implements Identifiable b = ImmutableRangeSet.builder(); - for (int i = 0; i < purgedSize; ++i) { - final byte header = WritableObjects.readLongHeader(in); - final UnsignedLong lower = UnsignedLong.fromLongBits(WritableObjects.readFirstLong(in, header)); - final UnsignedLong upper = UnsignedLong.fromLongBits(WritableObjects.readSecondLong(in, header)); - - b.add(Range.closed(lower, upper)); - } + final var purgedHistories = ImmutableUnsignedLongSet.readFrom(in); final int currentSize = in.readInt(); - final Collection currentHistories = new ArrayList<>(currentSize); + final var currentBuilder = ImmutableList.builderWithExpectedSize(currentSize); for (int i = 0; i < currentSize; ++i) { - currentHistories.add(FrontendHistoryMetadata.readFrom(in)); + currentBuilder.add(FrontendHistoryMetadata.readFrom(in)); } - return new FrontendClientMetadata(id, b.build(), currentHistories); + return new FrontendClientMetadata(id, purgedHistories, currentBuilder.build()); } @Override