public Builder mergeFrom(io.pravega.controller.stream.api.grpc.v1.Controller.StreamCutRangeResponse other) { if (other == io.pravega.controller.stream.api.grpc.v1.Controller.StreamCutRangeResponse.getDefaultInstance()) return this; if (segmentsBuilder_ == null) { if (!other.segments_.isEmpty()) { if (!other.getDelegationToken().isEmpty()) { delegationToken_ = other.delegationToken_; onChanged();
@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; }
public static final Controller.StreamCutRangeResponse createStreamCutRangeResponse(final String scope, final String stream, final List<SegmentId> segments, String delegationToken) { Exceptions.checkNotNullOrEmpty(scope, "scope"); Exceptions.checkNotNullOrEmpty(stream, "stream"); Exceptions.checkArgument(segments.stream().allMatch(x -> x.getStreamInfo().getScope().equals(scope) && x.getStreamInfo().getStream().equals(stream)), "streamInfo", "stream info does not match segment id", scope, stream, segments); return Controller.StreamCutRangeResponse.newBuilder() .addAllSegments(segments) .setDelegationToken(delegationToken) .build(); }
.putAllFrom(from1).putAllTo(to1).build(), result1); Assert.assertEquals(2, result1.get().getSegmentsCount()); .putAllFrom(from2).putAllTo(to2).build(), result2); Assert.assertEquals(2, result2.get().getSegmentsCount()); .putAllFrom(from3).putAllTo(to3).build(), result3); Assert.assertEquals(2, result3.get().getSegmentsCount());
@io.grpc.stub.annotations.RpcMethod( fullMethodName = SERVICE_NAME + '/' + "getSegmentsBetween", requestType = io.pravega.controller.stream.api.grpc.v1.Controller.StreamCutRange.class, responseType = io.pravega.controller.stream.api.grpc.v1.Controller.StreamCutRangeResponse.class, methodType = io.grpc.MethodDescriptor.MethodType.UNARY) public static io.grpc.MethodDescriptor<io.pravega.controller.stream.api.grpc.v1.Controller.StreamCutRange, io.pravega.controller.stream.api.grpc.v1.Controller.StreamCutRangeResponse> getGetSegmentsBetweenMethod() { io.grpc.MethodDescriptor<io.pravega.controller.stream.api.grpc.v1.Controller.StreamCutRange, io.pravega.controller.stream.api.grpc.v1.Controller.StreamCutRangeResponse> getGetSegmentsBetweenMethod; if ((getGetSegmentsBetweenMethod = ControllerServiceGrpc.getGetSegmentsBetweenMethod) == null) { synchronized (ControllerServiceGrpc.class) { if ((getGetSegmentsBetweenMethod = ControllerServiceGrpc.getGetSegmentsBetweenMethod) == null) { ControllerServiceGrpc.getGetSegmentsBetweenMethod = getGetSegmentsBetweenMethod = io.grpc.MethodDescriptor.<io.pravega.controller.stream.api.grpc.v1.Controller.StreamCutRange, io.pravega.controller.stream.api.grpc.v1.Controller.StreamCutRangeResponse>newBuilder() .setType(io.grpc.MethodDescriptor.MethodType.UNARY) .setFullMethodName(generateFullMethodName( "io.pravega.controller.stream.api.grpc.v1.ControllerService", "getSegmentsBetween")) .setSampledToLocalTracing(true) .setRequestMarshaller(io.grpc.protobuf.ProtoUtils.marshaller( io.pravega.controller.stream.api.grpc.v1.Controller.StreamCutRange.getDefaultInstance())) .setResponseMarshaller(io.grpc.protobuf.ProtoUtils.marshaller( io.pravega.controller.stream.api.grpc.v1.Controller.StreamCutRangeResponse.getDefaultInstance())) .setSchemaDescriptor(new ControllerServiceMethodDescriptorSupplier("getSegmentsBetween")) .build(); } } } return getGetSegmentsBetweenMethod; }
public io.pravega.controller.stream.api.grpc.v1.Controller.StreamCutRangeResponse buildPartial() { io.pravega.controller.stream.api.grpc.v1.Controller.StreamCutRangeResponse result = new io.pravega.controller.stream.api.grpc.v1.Controller.StreamCutRangeResponse(this); int from_bitField0_ = bitField0_; int to_bitField0_ = 0; if (segmentsBuilder_ == null) { if (((bitField0_ & 0x00000001) == 0x00000001)) { segments_ = java.util.Collections.unmodifiableList(segments_); bitField0_ = (bitField0_ & ~0x00000001); } result.segments_ = segments_; } else { result.segments_ = segmentsBuilder_.build(); } result.delegationToken_ = delegationToken_; result.bitField0_ = to_bitField0_; onBuilt(); return result; }
@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; }
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()); }); }
public Builder newBuilderForType() { return newBuilder(); } public static Builder newBuilder() {
public int getSerializedSize() { int size = memoizedSize; if (size != -1) return size; size = 0; for (int i = 0; i < segments_.size(); i++) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(1, segments_.get(i)); } if (!getDelegationTokenBytes().isEmpty()) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, delegationToken_); } size += unknownFields.getSerializedSize(); memoizedSize = size; return size; }
public io.pravega.controller.stream.api.grpc.v1.Controller.StreamCutRangeResponse getDefaultInstanceForType() { return io.pravega.controller.stream.api.grpc.v1.Controller.StreamCutRangeResponse.getDefaultInstance(); }
@Test public void testStreamCutRequestAndResponse() { List<SegmentId> segments = Collections.singletonList(SegmentId.newBuilder().setStreamInfo(Controller.StreamInfo.newBuilder(). setScope("testScope").setStream("testStream")).build()); AssertExtensions.assertThrows("invalid scope and stream", () -> ModelHelper.createStreamCutRangeResponse("scope", "stream", segments, ""), e -> e instanceof IllegalArgumentException); Controller.StreamCutRangeResponse response = ModelHelper.createStreamCutRangeResponse("testScope", "testStream", segments, ""); Assert.assertEquals(1, response.getSegmentsCount()); final SegmentId resultSegmentID = response.getSegments(0); assertEquals("testScope", resultSegmentID.getStreamInfo().getScope()); assertEquals("testStream", resultSegmentID.getStreamInfo().getStream()); assertEquals(0L, resultSegmentID.getSegmentId()); }
@Override public void getSegmentsBetween(Controller.StreamCutRange request, StreamObserver<Controller.StreamCutRangeResponse> responseObserver) { if (request.getStreamInfo().getStream().equals("stream1")) { SegmentId segment1 = ModelHelper.createSegmentId("scope1", "stream1", 0L); SegmentId segment2 = ModelHelper.createSegmentId("scope1", "stream1", 1L); responseObserver.onNext(Controller.StreamCutRangeResponse.newBuilder().addSegments(segment1).addSegments(segment2).build()); responseObserver.onCompleted(); } else { responseObserver.onError(Status.INTERNAL.withDescription("Server error").asRuntimeException()); } }
public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { for (int i = 0; i < segments_.size(); i++) { output.writeMessage(1, segments_.get(i)); } if (!getDelegationTokenBytes().isEmpty()) { com.google.protobuf.GeneratedMessageV3.writeString(output, 2, delegationToken_); } unknownFields.writeTo(output); }
/** * <code>string delegationToken = 2;</code> */ public Builder clearDelegationToken() { delegationToken_ = getDefaultInstance().getDelegationToken(); onChanged(); return this; } /**
@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())); }