@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 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 CompletableFuture<NodeUri> getURI(final SegmentId segment) { Preconditions.checkNotNull(segment, "segment"); return CompletableFuture.completedFuture( segmentHelper.getSegmentUri(segment.getStreamInfo().getScope(), segment.getStreamInfo().getStream(), segment.getSegmentId(), hostStore) ); }
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)); result.put(ModelHelper.createSegmentId("scope1", "stream8", 8), Pair.of(0.8, 1.0));
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());
@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; }
public Builder mergeFrom(io.pravega.controller.stream.api.grpc.v1.Controller.SegmentId other) { if (other == io.pravega.controller.stream.api.grpc.v1.Controller.SegmentId.getDefaultInstance()) return this; if (other.hasStreamInfo()) { mergeStreamInfo(other.getStreamInfo()); } if (other.getSegmentId() != 0L) { setSegmentId(other.getSegmentId()); } this.mergeUnknownFields(other.unknownFields); onChanged(); return this; }
@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()); }
/** * Helper to convert Segment Id into Segment object. * * @param segment The Segment Id. * @return New instance of Segment. */ public static final Segment encode(final SegmentId segment) { Preconditions.checkNotNull(segment, "segment"); return new Segment(segment.getStreamInfo().getScope(), segment.getStreamInfo().getStream(), segment.getSegmentId()); }
@Test public void decodeSegmentId() { final String streamName = "stream1"; SegmentId segmentID = ModelHelper.decode(createSegmentId(streamName, 2)); assertEquals(streamName, segmentID.getStreamInfo().getStream()); assertEquals("scope", segmentID.getStreamInfo().getScope()); assertEquals(2, segmentID.getSegmentId()); }
@Override public void getURI(SegmentId request, StreamObserver<NodeUri> responseObserver) { log.info("getURI 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.getURI(request), responseObserver); }