@java.lang.Override public int hashCode() { if (memoizedHashCode != 0) { return memoizedHashCode; } int hash = 41; hash = (19 * hash) + getDescriptor().hashCode(); if (hasStreamInfo()) { hash = (37 * hash) + STREAMINFO_FIELD_NUMBER; hash = (53 * hash) + getStreamInfo().hashCode(); } hash = (37 * hash) + SEGMENTID_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( getSegmentId()); hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; }
public io.pravega.controller.stream.api.grpc.v1.Controller.SegmentId buildPartial() { io.pravega.controller.stream.api.grpc.v1.Controller.SegmentId result = new io.pravega.controller.stream.api.grpc.v1.Controller.SegmentId(this); if (streamInfoBuilder_ == null) { result.streamInfo_ = streamInfo_; } else { result.streamInfo_ = streamInfoBuilder_.build(); } result.segmentId_ = segmentId_; 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.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; }
@Override public void getSegmentsImmediatlyFollowing(SegmentId request, StreamObserver<SuccessorResponse> responseObserver) { if (request.getStreamInfo().getStream().equals("stream1")) { Map<SegmentId, Pair<Double, Double>> result = new HashMap<>(); if (request.getSegmentId() == 0) { result.put(ModelHelper.createSegmentId("scope1", "stream1", 2), Pair.of(0.0, 0.25)); result.put(ModelHelper.createSegmentId("scope1", "stream1", 3), Pair.of(0.25, 0.5)); } else if (request.getSegmentId() == 1) { result.put(ModelHelper.createSegmentId("scope1", "stream1", 4), Pair.of(0.5, 0.75)); result.put(ModelHelper.createSegmentId("scope1", "stream1", 5), Pair.of(0.75, 1.0)); } else if (request.getSegmentId() == 2 || request.getSegmentId() == 3) { result.put(ModelHelper.createSegmentId("scope1", "stream1", 6), Pair.of(0.0, 0.5)); } else if (request.getSegmentId() == 4 || request.getSegmentId() == 5) { result.put(ModelHelper.createSegmentId("scope1", "stream1", 7), Pair.of(0.5, 0.25)); .setMaxKey(entry.getValue().getRight()) .build()) .addValue(10 * entry.getKey().getSegmentId()) .build()); } else if (request.getStreamInfo().getStream().equals("stream8")) { Map<SegmentId, Pair<Double, Double>> result = new HashMap<>(); if (request.getSegmentId() == 0) { result.put(ModelHelper.createSegmentId("scope1", "stream8", 3), Pair.of(0.0, 0.2)); result.put(ModelHelper.createSegmentId("scope1", "stream8", 4), Pair.of(0.2, 0.33)); } else if (request.getSegmentId() == 1) { result.put(ModelHelper.createSegmentId("scope1", "stream8", 5), Pair.of(0.33, 0.5)); result.put(ModelHelper.createSegmentId("scope1", "stream8", 6), Pair.of(0.5, 0.66)); } else if (request.getSegmentId() == 2) { result.put(ModelHelper.createSegmentId("scope1", "stream8", 7), Pair.of(0.66, 0.8));
final SegmentRanges segmentRanges = result3.get(); Assert.assertEquals(3, segmentRanges.getSegmentRangesCount()); Assert.assertEquals(0, segmentRanges.getSegmentRanges(0).getSegmentId().getSegmentId()); Assert.assertEquals(computeSegmentId(2, 1), segmentRanges.getSegmentRanges(1).getSegmentId().getSegmentId()); Assert.assertEquals(computeSegmentId(3, 1), segmentRanges.getSegmentRanges(2).getSegmentId().getSegmentId());
@io.grpc.stub.annotations.RpcMethod( fullMethodName = SERVICE_NAME + '/' + "getSegmentsImmediatlyFollowing", requestType = io.pravega.controller.stream.api.grpc.v1.Controller.SegmentId.class, responseType = io.pravega.controller.stream.api.grpc.v1.Controller.SuccessorResponse.class, methodType = io.grpc.MethodDescriptor.MethodType.UNARY) public static io.grpc.MethodDescriptor<io.pravega.controller.stream.api.grpc.v1.Controller.SegmentId, io.pravega.controller.stream.api.grpc.v1.Controller.SuccessorResponse> getGetSegmentsImmediatlyFollowingMethod() { io.grpc.MethodDescriptor<io.pravega.controller.stream.api.grpc.v1.Controller.SegmentId, io.pravega.controller.stream.api.grpc.v1.Controller.SuccessorResponse> getGetSegmentsImmediatlyFollowingMethod; if ((getGetSegmentsImmediatlyFollowingMethod = ControllerServiceGrpc.getGetSegmentsImmediatlyFollowingMethod) == null) { synchronized (ControllerServiceGrpc.class) { if ((getGetSegmentsImmediatlyFollowingMethod = ControllerServiceGrpc.getGetSegmentsImmediatlyFollowingMethod) == null) { ControllerServiceGrpc.getGetSegmentsImmediatlyFollowingMethod = getGetSegmentsImmediatlyFollowingMethod = io.grpc.MethodDescriptor.<io.pravega.controller.stream.api.grpc.v1.Controller.SegmentId, io.pravega.controller.stream.api.grpc.v1.Controller.SuccessorResponse>newBuilder() .setType(io.grpc.MethodDescriptor.MethodType.UNARY) .setFullMethodName(generateFullMethodName( "io.pravega.controller.stream.api.grpc.v1.ControllerService", "getSegmentsImmediatlyFollowing")) .setSampledToLocalTracing(true) .setRequestMarshaller(io.grpc.protobuf.ProtoUtils.marshaller( io.pravega.controller.stream.api.grpc.v1.Controller.SegmentId.getDefaultInstance())) .setResponseMarshaller(io.grpc.protobuf.ProtoUtils.marshaller( io.pravega.controller.stream.api.grpc.v1.Controller.SuccessorResponse.getDefaultInstance())) .setSchemaDescriptor(new ControllerServiceMethodDescriptorSupplier("getSegmentsImmediatlyFollowing")) .build(); } } } return getGetSegmentsImmediatlyFollowingMethod; }
@io.grpc.stub.annotations.RpcMethod( fullMethodName = SERVICE_NAME + '/' + "isSegmentValid", requestType = io.pravega.controller.stream.api.grpc.v1.Controller.SegmentId.class, responseType = io.pravega.controller.stream.api.grpc.v1.Controller.SegmentValidityResponse.class, methodType = io.grpc.MethodDescriptor.MethodType.UNARY) public static io.grpc.MethodDescriptor<io.pravega.controller.stream.api.grpc.v1.Controller.SegmentId, io.pravega.controller.stream.api.grpc.v1.Controller.SegmentValidityResponse> getIsSegmentValidMethod() { io.grpc.MethodDescriptor<io.pravega.controller.stream.api.grpc.v1.Controller.SegmentId, io.pravega.controller.stream.api.grpc.v1.Controller.SegmentValidityResponse> getIsSegmentValidMethod; if ((getIsSegmentValidMethod = ControllerServiceGrpc.getIsSegmentValidMethod) == null) { synchronized (ControllerServiceGrpc.class) { if ((getIsSegmentValidMethod = ControllerServiceGrpc.getIsSegmentValidMethod) == null) { ControllerServiceGrpc.getIsSegmentValidMethod = getIsSegmentValidMethod = io.grpc.MethodDescriptor.<io.pravega.controller.stream.api.grpc.v1.Controller.SegmentId, io.pravega.controller.stream.api.grpc.v1.Controller.SegmentValidityResponse>newBuilder() .setType(io.grpc.MethodDescriptor.MethodType.UNARY) .setFullMethodName(generateFullMethodName( "io.pravega.controller.stream.api.grpc.v1.ControllerService", "isSegmentValid")) .setSampledToLocalTracing(true) .setRequestMarshaller(io.grpc.protobuf.ProtoUtils.marshaller( io.pravega.controller.stream.api.grpc.v1.Controller.SegmentId.getDefaultInstance())) .setResponseMarshaller(io.grpc.protobuf.ProtoUtils.marshaller( io.pravega.controller.stream.api.grpc.v1.Controller.SegmentValidityResponse.getDefaultInstance())) .setSchemaDescriptor(new ControllerServiceMethodDescriptorSupplier("isSegmentValid")) .build(); } } } return getIsSegmentValidMethod; }
@io.grpc.stub.annotations.RpcMethod( fullMethodName = SERVICE_NAME + '/' + "getURI", requestType = io.pravega.controller.stream.api.grpc.v1.Controller.SegmentId.class, responseType = io.pravega.controller.stream.api.grpc.v1.Controller.NodeUri.class, methodType = io.grpc.MethodDescriptor.MethodType.UNARY) public static io.grpc.MethodDescriptor<io.pravega.controller.stream.api.grpc.v1.Controller.SegmentId, io.pravega.controller.stream.api.grpc.v1.Controller.NodeUri> getGetURIMethod() { io.grpc.MethodDescriptor<io.pravega.controller.stream.api.grpc.v1.Controller.SegmentId, io.pravega.controller.stream.api.grpc.v1.Controller.NodeUri> getGetURIMethod; if ((getGetURIMethod = ControllerServiceGrpc.getGetURIMethod) == null) { synchronized (ControllerServiceGrpc.class) { if ((getGetURIMethod = ControllerServiceGrpc.getGetURIMethod) == null) { ControllerServiceGrpc.getGetURIMethod = getGetURIMethod = io.grpc.MethodDescriptor.<io.pravega.controller.stream.api.grpc.v1.Controller.SegmentId, io.pravega.controller.stream.api.grpc.v1.Controller.NodeUri>newBuilder() .setType(io.grpc.MethodDescriptor.MethodType.UNARY) .setFullMethodName(generateFullMethodName( "io.pravega.controller.stream.api.grpc.v1.ControllerService", "getURI")) .setSampledToLocalTracing(true) .setRequestMarshaller(io.grpc.protobuf.ProtoUtils.marshaller( io.pravega.controller.stream.api.grpc.v1.Controller.SegmentId.getDefaultInstance())) .setResponseMarshaller(io.grpc.protobuf.ProtoUtils.marshaller( io.pravega.controller.stream.api.grpc.v1.Controller.NodeUri.getDefaultInstance())) .setSchemaDescriptor(new ControllerServiceMethodDescriptorSupplier("getURI")) .build(); } } } return getGetURIMethod; }
@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.SegmentId)) { return super.equals(obj); } io.pravega.controller.stream.api.grpc.v1.Controller.SegmentId other = (io.pravega.controller.stream.api.grpc.v1.Controller.SegmentId) obj; boolean result = true; result = result && (hasStreamInfo() == other.hasStreamInfo()); if (hasStreamInfo()) { result = result && getStreamInfo() .equals(other.getStreamInfo()); } result = result && (getSegmentId() == other.getSegmentId()); result = result && unknownFields.equals(other.unknownFields); 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.SegmentsAtTime.SegmentLocation)) { return super.equals(obj); } io.pravega.controller.stream.api.grpc.v1.Controller.SegmentsAtTime.SegmentLocation other = (io.pravega.controller.stream.api.grpc.v1.Controller.SegmentsAtTime.SegmentLocation) obj; boolean result = true; result = result && (hasSegmentId() == other.hasSegmentId()); if (hasSegmentId()) { result = result && getSegmentId() .equals(other.getSegmentId()); } result = result && (getOffset() == other.getOffset()); result = result && unknownFields.equals(other.unknownFields); return result; }
/** * <code>.io.pravega.controller.stream.api.grpc.v1.SegmentId segmentId = 1;</code> */ public Builder mergeSegmentId(io.pravega.controller.stream.api.grpc.v1.Controller.SegmentId value) { if (segmentIdBuilder_ == null) { if (segmentId_ != null) { segmentId_ = io.pravega.controller.stream.api.grpc.v1.Controller.SegmentId.newBuilder(segmentId_).mergeFrom(value).buildPartial(); } else { segmentId_ = value; } onChanged(); } else { segmentIdBuilder_.mergeFrom(value); } return this; } /**
/** * <code>.io.pravega.controller.stream.api.grpc.v1.SegmentId segmentId = 1;</code> */ public Builder mergeSegmentId(io.pravega.controller.stream.api.grpc.v1.Controller.SegmentId value) { if (segmentIdBuilder_ == null) { if (segmentId_ != null) { segmentId_ = io.pravega.controller.stream.api.grpc.v1.Controller.SegmentId.newBuilder(segmentId_).mergeFrom(value).buildPartial(); } else { segmentId_ = value; } onChanged(); } else { segmentIdBuilder_.mergeFrom(value); } return this; } /**
public CompletableFuture<Map<SegmentRange, List<Long>>> getSegmentsImmediatelyFollowing(SegmentId segment) { Preconditions.checkNotNull(segment, "segment"); OperationContext context = streamStore.createContext(segment.getStreamInfo().getScope(), segment .getStreamInfo().getStream()); return streamStore.getSuccessors(segment.getStreamInfo().getScope(), segment.getStreamInfo().getStream(), segment.getSegmentId(), context, executor) .thenApply(successors -> successors.entrySet().stream() .collect(Collectors.toMap( entry -> ModelHelper.createSegmentRange(segment.getStreamInfo().getScope(), segment.getStreamInfo().getStream(), entry.getKey().segmentId(), entry.getKey().getKeyStart(), entry.getKey().getKeyEnd()), Map.Entry::getValue))); }
public Builder newBuilderForType() { return newBuilder(); } public static Builder newBuilder() {
public int getSerializedSize() { int size = memoizedSize; if (size != -1) return size; size = 0; if (streamInfo_ != null) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(1, getStreamInfo()); } if (segmentId_ != 0L) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(2, segmentId_); } size += unknownFields.getSerializedSize(); memoizedSize = size; return size; }
public io.pravega.controller.stream.api.grpc.v1.Controller.SegmentId getDefaultInstanceForType() { return io.pravega.controller.stream.api.grpc.v1.Controller.SegmentId.getDefaultInstance(); }
@Override public void getSegmentsImmediatlyFollowing(SegmentId segmentId, StreamObserver<SuccessorResponse> responseObserver) { log.info("getSegmentsImmediatelyFollowing called for segment {} ", segmentId); authenticateExecuteAndProcessResults(() -> this.authHelper.checkAuthorization(segmentId.getStreamInfo().getScope() + "/" + segmentId.getStreamInfo().getStream(), AuthHandler.Permissions.READ), delegationToken -> controllerService.getSegmentsImmediatelyFollowing(segmentId) .thenApply(ModelHelper::createSuccessorResponse) .thenApply(response -> { response.setDelegationToken(delegationToken); return response.build(); }), responseObserver); }
@Override public void isSegmentValid(SegmentId request, StreamObserver<SegmentValidityResponse> responseObserver) { log.info("isSegmentValid called for segment {}/{}/{}.", request.getStreamInfo().getScope(), request.getStreamInfo().getStream(), request.getSegmentId()); authenticateExecuteAndProcessResults(() -> this.authHelper.checkAuthorization(request.getStreamInfo().getScope() + "/" + request.getStreamInfo().getStream(), AuthHandler.Permissions.READ_UPDATE), delegationToken -> controllerService.isSegmentValid(request.getStreamInfo().getScope(), request.getStreamInfo().getStream(), request.getSegmentId()) .thenApply(bRes -> SegmentValidityResponse.newBuilder().setResponse(bRes).build()), responseObserver); }
@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 isSegmentValid(SegmentId request, StreamObserver<SegmentValidityResponse> responseObserver) { if (request.getStreamInfo().getStream().equals("stream1")) { responseObserver.onNext(SegmentValidityResponse.newBuilder().setResponse(true).build()); responseObserver.onCompleted(); } else if (request.getStreamInfo().getStream().equals("stream2")) { responseObserver.onNext(SegmentValidityResponse.newBuilder().setResponse(false).build()); responseObserver.onCompleted(); } else { responseObserver.onError(Status.INTERNAL.withDescription("Server error").asRuntimeException()); } }