@Override public void getSegments(GetSegmentsRequest request, StreamObserver<SegmentsAtTime> responseObserver) { log.debug("getSegments called for stream " + request.getStreamInfo().getScope() + "/" + request.getStreamInfo().getStream()); authenticateExecuteAndProcessResults(() -> this.authHelper.checkAuthorizationAndCreateToken(request.getStreamInfo().getScope() + "/" + request.getStreamInfo().getStream(), AuthHandler.Permissions.READ_UPDATE), delegationToken -> controllerService.getSegmentsAtHead(request.getStreamInfo().getScope(), request.getStreamInfo().getStream()) .thenApply(segments -> { SegmentsAtTime.Builder builder = SegmentsAtTime.newBuilder() .setDelegationToken(delegationToken); for (Entry<SegmentId, Long> entry : segments.entrySet()) { builder.addSegments(SegmentLocation.newBuilder() .setSegmentId(entry.getKey()) .setOffset(entry.getValue()) .build()); } return builder.build(); }), responseObserver); }
SegmentId segment1 = ModelHelper.createSegmentId("scope1", "stream1", 0); SegmentId segment2 = ModelHelper.createSegmentId("scope1", "stream1", 1); responseObserver.onNext(SegmentsAtTime.newBuilder() .addSegments(SegmentLocation.newBuilder() .setSegmentId(segment1) SegmentId segment2 = ModelHelper.createSegmentId("scope1", "stream8", 1); SegmentId segment3 = ModelHelper.createSegmentId("scope1", "stream8", 2); responseObserver.onNext(SegmentsAtTime.newBuilder() .addSegments(SegmentLocation.newBuilder() .setSegmentId(segment1)
public Builder newBuilderForType() { return newBuilder(); } public static Builder newBuilder() {