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%2FFrontendClientMetadata.java;h=49573e247c6615e9ff79ef736573a969c749713e;hb=HEAD;hp=a3f41ed65ddfbfb21c4da06d804f1a0278db6c75;hpb=3859df9beca8f13f1ff2b2744ed3470a1715bec3;p=controller.git 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 a3f41ed65d..49573e247c 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 @@ -11,56 +11,43 @@ import static java.util.Objects.requireNonNull; import com.google.common.base.MoreObjects; 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.yangtools.concepts.Identifiable; +import org.opendaylight.controller.cluster.datastore.utils.ImmutableUnsignedLongSet; 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; +public final class FrontendClientMetadata implements WritableObject { + private final @NonNull ImmutableList currentHistories; + private final @NonNull ImmutableUnsignedLongSet purgedHistories; + private final @NonNull ClientIdentifier clientId; - public FrontendClientMetadata(final ClientIdentifier identifier, final RangeSet purgedHistories, + public FrontendClientMetadata(final ClientIdentifier clientId, final ImmutableUnsignedLongSet purgedHistories, final Collection currentHistories) { - this.identifier = requireNonNull(identifier); - this.purgedHistories = ImmutableRangeSet.copyOf(purgedHistories); + this.clientId = requireNonNull(clientId); + this.purgedHistories = requireNonNull(purgedHistories); this.currentHistories = ImmutableList.copyOf(currentHistories); } - public Collection getCurrentHistories() { - return currentHistories; + public ClientIdentifier clientId() { + return clientId; } - public RangeSet getPurgedHistories() { - return purgedHistories; + public ImmutableList getCurrentHistories() { + return currentHistories; } - @Override - public ClientIdentifier getIdentifier() { - return identifier; + public ImmutableUnsignedLongSet getPurgedHistories() { + return purgedHistories; } @Override public void writeTo(final DataOutput out) throws IOException { - identifier.writeTo(out); - - final Set> ranges = purgedHistories.asRanges(); - out.writeInt(ranges.size()); - for (final Range r : ranges) { - WritableObjects.writeLongs(out, r.lowerEndpoint().longValue(), r.upperEndpoint().longValue()); - } + clientId.writeTo(out); + purgedHistories.writeTo(out); out.writeInt(currentHistories.size()); for (final FrontendHistoryMetadata h : currentHistories) { @@ -69,30 +56,21 @@ 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 clientId = ClientIdentifier.readFrom(in); + 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(clientId, purgedHistories, currentBuilder.build()); } @Override public String toString() { - return MoreObjects.toStringHelper(FrontendClientMetadata.class).add("identifer", identifier) - .add("current", currentHistories).add("purged", purgedHistories).toString(); + return MoreObjects.toStringHelper(FrontendClientMetadata.class) + .add("clientId", clientId).add("current", currentHistories).add("purged", purgedHistories).toString(); } }