@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.StreamCutRangeResponse)) { return super.equals(obj); } io.pravega.controller.stream.api.grpc.v1.Controller.StreamCutRangeResponse other = (io.pravega.controller.stream.api.grpc.v1.Controller.StreamCutRangeResponse) obj; boolean result = true; result = result && getSegmentsList() .equals(other.getSegmentsList()); result = result && getDelegationToken() .equals(other.getDelegationToken()); result = result && unknownFields.equals(other.unknownFields); return result; }
@java.lang.Override public int hashCode() { if (memoizedHashCode != 0) { return memoizedHashCode; } int hash = 41; hash = (19 * hash) + getDescriptor().hashCode(); if (getSegmentsCount() > 0) { hash = (37 * hash) + SEGMENTS_FIELD_NUMBER; hash = (53 * hash) + getSegmentsList().hashCode(); } hash = (37 * hash) + DELEGATIONTOKEN_FIELD_NUMBER; hash = (53 * hash) + getDelegationToken().hashCode(); hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; }
@Override public CompletableFuture<StreamSegmentSuccessors> getSegments(StreamCut fromStreamCut, StreamCut toStreamCut) { Stream stream = fromStreamCut.asImpl().getStream(); return controller.getSegmentsBetweenStreamCuts(ModelHelper.decode(stream.getScope(), stream.getStreamName(), getStreamCutMap(fromStreamCut), getStreamCutMap(toStreamCut))) .thenApply(segments -> ModelHelper.createStreamCutRangeResponse(stream.getScope(), stream.getStreamName(), segments.stream().map(x -> ModelHelper.createSegmentId(stream.getScope(), stream.getStreamName(), x.segmentId())) .collect(Collectors.toList()), retrieveDelegationToken())) .thenApply(response -> new StreamSegmentSuccessors(response.getSegmentsList().stream().map(ModelHelper::encode).collect(Collectors.toSet()), response.getDelegationToken())); }
private CompletableFuture<StreamSegmentSuccessors> getSegmentsBetweenStreamCuts(final StreamCut fromStreamCut, final StreamCut toStreamCut) { Exceptions.checkNotClosed(closed.get(), this); final Stream stream = fromStreamCut.asImpl().getStream(); long traceId = LoggerHelpers.traceEnter(log, "getSegments", stream); CompletableFuture<String> token = getOrRefreshDelegationTokenFor(stream.getScope(), stream.getStreamName()); final CompletableFuture<StreamCutRangeResponse> resultFuture = this.retryConfig.runAsync(() -> { RPCAsyncCallback<StreamCutRangeResponse> callback = new RPCAsyncCallback<>(traceId, "getSuccessorsFromCut"); client.getSegmentsBetween(ModelHelper.decode(stream.getScope(), stream.getStreamName(), getStreamCutMap(fromStreamCut), getStreamCutMap(toStreamCut)), callback); return callback.getFuture(); }, this.executor); return resultFuture.thenApply(response -> { log.debug("Received the following data from the controller {}", response.getSegmentsList()); return new StreamSegmentSuccessors(response.getSegmentsList().stream().map(ModelHelper::encode).collect(Collectors.toSet()), response.getDelegationToken()); }); }