Class StreamTransferTask


  • public class StreamTransferTask
    extends StreamTask
    StreamTransferTask sends streams for a given table
    • Constructor Detail

    • Method Detail

      • addTransferStream

        public void addTransferStream​(OutgoingStream stream)
      • complete

        public void complete​(int sequenceNumber)
        Received ACK for stream at sequenceNumber.
        Parameters:
        sequenceNumber - sequence number of stream
      • timeout

        public void timeout​(int sequenceNumber)
        Received ACK for stream at sequenceNumber.
        Parameters:
        sequenceNumber - sequence number of stream
      • abort

        public void abort()
        Description copied from class: StreamTask
        Abort the task. Subclass should implement cleaning up resources.
        Specified by:
        abort in class StreamTask
      • getTotalNumberOfFiles

        public int getTotalNumberOfFiles()
        Specified by:
        getTotalNumberOfFiles in class StreamTask
        Returns:
        total number of files this task receives/streams.
      • getTotalSize

        public long getTotalSize()
        Specified by:
        getTotalSize in class StreamTask
        Returns:
        total bytes expected to receive
      • scheduleTimeout

        public java.util.concurrent.ScheduledFuture<?> scheduleTimeout​(int sequenceNumber,
                                                                       long time,
                                                                       java.util.concurrent.TimeUnit unit)
        Schedule timeout task to release reference for stream sent. When not receiving ACK after sending to receiver in given time, the task will release reference.
        Parameters:
        sequenceNumber - sequence number of stream sent.
        time - time to timeout
        unit - unit of given time
        Returns:
        scheduled future for timeout task
      • shutdownAndWait

        public static void shutdownAndWait​(long timeout,
                                           java.util.concurrent.TimeUnit units)
                                    throws java.lang.InterruptedException,
                                           java.util.concurrent.TimeoutException
        Throws:
        java.lang.InterruptedException
        java.util.concurrent.TimeoutException