@java.lang.Override public int hashCode() { if (memoizedHashCode != 0) { return memoizedHashCode; } int hash = 41; hash = (19 * hash) + getDescriptor().hashCode(); if (hasSegmentId()) { hash = (37 * hash) + SEGMENTID_FIELD_NUMBER; hash = (53 * hash) + getSegmentId().hashCode(); } hash = (37 * hash) + MINKEY_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getMinKey())); hash = (37 * hash) + MAXKEY_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getMaxKey())); hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; }
@java.lang.Override public boolean equals(final java.lang.Object obj) { if (obj == this) { return true; } if (!(obj instanceof io.pravega.controller.stream.api.grpc.v1.Controller.SegmentRange)) { return super.equals(obj); } io.pravega.controller.stream.api.grpc.v1.Controller.SegmentRange other = (io.pravega.controller.stream.api.grpc.v1.Controller.SegmentRange) obj; boolean result = true; result = result && (hasSegmentId() == other.hasSegmentId()); if (hasSegmentId()) { result = result && getSegmentId() .equals(other.getSegmentId()); } result = result && ( java.lang.Double.doubleToLongBits(getMinKey()) == java.lang.Double.doubleToLongBits( other.getMinKey())); result = result && ( java.lang.Double.doubleToLongBits(getMaxKey()) == java.lang.Double.doubleToLongBits( other.getMaxKey())); result = result && unknownFields.equals(other.unknownFields); return result; }
private StreamSegments getStreamSegments(List<SegmentRange> ranges) { NavigableMap<Double, SegmentWithRange> rangeMap = new TreeMap<>(); for (SegmentRange r : ranges) { rangeMap.put(r.getMaxKey(), new SegmentWithRange(ModelHelper.encode(r.getSegmentId()), r.getMinKey(), r.getMaxKey())); } return new StreamSegments(rangeMap, retrieveDelegationToken()); }
@Override public CompletableFuture<StreamSegments> getCurrentSegments(final String scope, final String stream) { Exceptions.checkNotClosed(closed.get(), this); Exceptions.checkNotNullOrEmpty(scope, "scope"); Exceptions.checkNotNullOrEmpty(stream, "stream"); long traceId = LoggerHelpers.traceEnter(log, "getCurrentSegments", scope, stream); final CompletableFuture<SegmentRanges> result = this.retryConfig.runAsync(() -> { RPCAsyncCallback<SegmentRanges> callback = new RPCAsyncCallback<>(traceId, "getCurrentSegments"); client.getCurrentSegments(ModelHelper.createStreamInfo(scope, stream), callback); return callback.getFuture(); }, this.executor); return result.thenApply(ranges -> { log.debug("Received the following data from the controller {}", ranges.getSegmentRangesList()); NavigableMap<Double, SegmentWithRange> rangeMap = new TreeMap<>(); for (SegmentRange r : ranges.getSegmentRangesList()) { Preconditions.checkState(r.getMinKey() <= r.getMaxKey(), "Min keyrange %s was not less than maximum keyRange %s for segment %s", r.getMinKey(), r.getMaxKey(), r.getSegmentId()); rangeMap.put(r.getMaxKey(), new SegmentWithRange(ModelHelper.encode(r.getSegmentId()), r.getMinKey(), r.getMaxKey())); } return new StreamSegments(rangeMap, ranges.getDelegationToken()); }).whenComplete((x, e) -> { if (e != null) { log.warn("getCurrentSegments failed: ", e); } LoggerHelpers.traceLeave(log, "getCurrentSegments", traceId); }); }
public Builder mergeFrom(io.pravega.controller.stream.api.grpc.v1.Controller.SegmentRange other) { if (other == io.pravega.controller.stream.api.grpc.v1.Controller.SegmentRange.getDefaultInstance()) return this; if (other.hasSegmentId()) { mergeSegmentId(other.getSegmentId()); } if (other.getMinKey() != 0D) { setMinKey(other.getMinKey()); } if (other.getMaxKey() != 0D) { setMaxKey(other.getMaxKey()); } this.mergeUnknownFields(other.unknownFields); onChanged(); return this; }
/** * Helper to convert SegmentRange to SegmentWithRange. * * @param segmentRange segmentRange * @return SegmentWithRange */ public static final SegmentWithRange encode(final SegmentRange segmentRange) { return new SegmentWithRange(encode(segmentRange.getSegmentId()), segmentRange.getMinKey(), segmentRange .getMaxKey()); }
private TxnSegments convert(CreateTxnResponse response) { NavigableMap<Double, SegmentWithRange> rangeMap = new TreeMap<>(); for (SegmentRange r : response.getActiveSegmentsList()) { Preconditions.checkState(r.getMinKey() <= r.getMaxKey()); rangeMap.put(r.getMaxKey(), new SegmentWithRange(ModelHelper.encode(r.getSegmentId()), r.getMinKey(), r.getMaxKey())); } StreamSegments segments = new StreamSegments(rangeMap, response.getDelegationToken()); return new TxnSegments(segments, ModelHelper.encode(response.getTxnId())); }