Class SegmentInputStreamFactoryImpl

    • Constructor Detail

      • SegmentInputStreamFactoryImpl

        @ConstructorProperties({"controller","cp"})
        public SegmentInputStreamFactoryImpl​(Controller controller,
                                             ConnectionPool cp)
    • Method Detail

      • createEventReaderForSegment

        public EventSegmentReader createEventReaderForSegment​(Segment segment)
        Description copied from interface: SegmentInputStreamFactory
        Opens an existing segment for reading events. This operation will fail if the segment does not exist. This operation may be called multiple times on the same segment from the same client (i.e., there can be concurrent Event Readers in the same process space).
        Specified by:
        createEventReaderForSegment in interface SegmentInputStreamFactory
        Parameters:
        segment - The segment to create an input for.
        Returns:
        New instance of EventSegmentReader for reading.
      • createEventReaderForSegment

        public EventSegmentReader createEventReaderForSegment​(Segment segment,
                                                              long startOffset,
                                                              long endOffset)
        Description copied from interface: SegmentInputStreamFactory
        Opens an existing segment for reading events. This operation will fail if the segment does not exist. This operation may be called multiple times on the same segment from the same client (i.e., there can be concurrent Event Readers in the same process space).
        Specified by:
        createEventReaderForSegment in interface SegmentInputStreamFactory
        Parameters:
        segment - The segment to create an input for.
        startOffset - the start offset of the segment.
        endOffset - The end offset of the segment.
        Returns:
        New instance of EventSegmentReader for reading.
      • createEventReaderForSegment

        public EventSegmentReader createEventReaderForSegment​(Segment segment,
                                                              int bufferSize)
        Description copied from interface: SegmentInputStreamFactory
        Opens an existing segment for reading. This operation will fail if the segment does not exist. This operation may be called multiple times on the same segment from the same client (i.e., there can be concurrent Event Readers in the same process space). This operation additionally takes a buffer size parameter. This size is used to allocate buffer space for the bytes this reader reads from the segment. It is important to control the buffer size, e.g., when randomly reading events with EventStreamReader.fetchEvent(EventPointer)
        Specified by:
        createEventReaderForSegment in interface SegmentInputStreamFactory
        Parameters:
        segment - The segment to create an input for.
        bufferSize - Size of the read buffer.
        Returns:
        A segment event reader.
      • createEventReaderForSegment

        public EventSegmentReader createEventReaderForSegment​(Segment segment,
                                                              int bufferSize,
                                                              java.util.concurrent.Semaphore hasData,
                                                              long endOffset)
        Description copied from interface: SegmentInputStreamFactory
        Open an existing segment for reading up to the provided end offset. This operation will fail if the segment does not exist.
        Specified by:
        createEventReaderForSegment in interface SegmentInputStreamFactory
        Parameters:
        segment - The segment to create an input for.
        bufferSize - The size of the buffer to hold for data incoming on this segment.
        hasData - A Semaphore that will have `release` called when data is available.
        endOffset - The offset up to which the segment can be read.
        Returns:
        New instance of the EventSegmentReader for reading.
      • createEventReaderForSegment

        public EventSegmentReader createEventReaderForSegment​(Segment segment,
                                                              long startOffset,
                                                              int bufferSize)
        Description copied from interface: SegmentInputStreamFactory
        Opens an existing segment for reading. This operation will fail if the segment does not exist. This operation may be called multiple times on the same segment from the same client (i.e., there can be concurrent Event Readers in the same process space). This operation additionally takes a buffer size parameter. This size is used to allocate buffer space for the bytes this reader reads from the segment. It is important to control the buffer size and startOffset e.g., when randomly reading events with StreamManager.fetchEvent(EventPointer, Serializer)
        Specified by:
        createEventReaderForSegment in interface SegmentInputStreamFactory
        Parameters:
        segment - The segment to create an input for.
        startOffset - the start offset of the segment.
        bufferSize - Size of the read buffer.
        Returns:
        A segment event reader.
      • createInputStreamForSegment

        public SegmentInputStream createInputStreamForSegment​(Segment segment,
                                                              DelegationTokenProvider tokenProvider)
        Description copied from interface: SegmentInputStreamFactory
        Opens an existing segment for reading bytes. This operation will fail if the segment does not exist. This operation may be called multiple times on the same stream from the same client (i.e., there can be concurrent Stream Readers in the same process space).
        Specified by:
        createInputStreamForSegment in interface SegmentInputStreamFactory
        Parameters:
        segment - The segment to create an input for.
        tokenProvider - The DelegationTokenProvider instance to be used for obtaining a delegation token.
        Returns:
        New instance of SegmentInputStream for reading.
      • createInputStreamForSegment

        public SegmentInputStream createInputStreamForSegment​(Segment segment,
                                                              DelegationTokenProvider tokenProvider,
                                                              long startOffset)
        Description copied from interface: SegmentInputStreamFactory
        Opens an existing segment for reading bytes. This operation will fail if the segment does not exist. This operation may be called multiple times on the same stream from the same client (i.e., there can be concurrent Stream Readers in the same process space).
        Specified by:
        createInputStreamForSegment in interface SegmentInputStreamFactory
        Parameters:
        segment - The segment to create an input for.
        tokenProvider - The DelegationTokenProvider instance to be used for obtaining a delegation token.
        startOffset - The start offset of the segment.
        Returns:
        New instance of SegmentInputStream for reading.