Class StopAndWaitSegmentDecorator<DECORATEE extends Segment>

    • Constructor Detail

      • StopAndWaitSegmentDecorator

        public StopAndWaitSegmentDecorator​(DECORATEE aDecoratee,
                                           byte[] aAcknowledgeMagicBytes,
                                           int aAckRetryNumber,
                                           long aAckTimeoutInMs,
                                           org.refcodes.mixin.ConcatenateMode aCrcChecksumConcatenateMode,
                                           org.refcodes.numerical.Endianess aEndianess)
      • StopAndWaitSegmentDecorator

        public StopAndWaitSegmentDecorator​(DECORATEE aDecoratee,
                                           byte[] aAcknowledgeMagicBytes,
                                           int aAckRetryNumber,
                                           long aAckTimeoutInMs,
                                           org.refcodes.numerical.CrcAlgorithm aCrcAlgorithm,
                                           org.refcodes.mixin.ConcatenateMode aCrcChecksumConcatenateMode,
                                           org.refcodes.numerical.ChecksumValidationMode aCrcChecksumValidationMode,
                                           org.refcodes.numerical.Endianess aEndianess)
      • StopAndWaitSegmentDecorator

        public StopAndWaitSegmentDecorator​(DECORATEE aDecoratee,
                                           byte[] aAcknowledgeMagicBytes,
                                           int aAckRetryNumber,
                                           long aAckTimeoutInMs,
                                           org.refcodes.numerical.CrcAlgorithm aCrcAlgorithm,
                                           org.refcodes.mixin.ConcatenateMode aCrcChecksumConcatenateMode,
                                           org.refcodes.numerical.Endianess aEndianess)
      • StopAndWaitSegmentDecorator

        public StopAndWaitSegmentDecorator​(DECORATEE aDecoratee,
                                           byte[] aAcknowledgeMagicBytes,
                                           int aAckRetryNumber,
                                           long aAckTimeoutInMs,
                                           org.refcodes.numerical.CrcAlgorithm aCrcAlgorithm,
                                           org.refcodes.numerical.Endianess aEndianess)
      • StopAndWaitSegmentDecorator

        public StopAndWaitSegmentDecorator​(DECORATEE aDecoratee,
                                           byte[] aAcknowledgeMagicBytes,
                                           int aAckRetryNumber,
                                           long aAckTimeoutInMs,
                                           org.refcodes.numerical.Endianess aEndianess)
      • StopAndWaitSegmentDecorator

        public StopAndWaitSegmentDecorator​(DECORATEE aDecoratee,
                                           byte[] aAcknowledgeMagicBytes,
                                           int aAckRetryNumber,
                                           long aAckTimeoutInMs,
                                           SegmentPackager aAckSegmentPackager,
                                           org.refcodes.numerical.Endianess aEndianess)
      • StopAndWaitSegmentDecorator

        public StopAndWaitSegmentDecorator​(DECORATEE aDecoratee,
                                           org.refcodes.mixin.ConcatenateMode aSequenceNumberConcatenateMode,
                                           byte[] aAcknowledgeMagicBytes,
                                           int aAckRetryNumber,
                                           long aAckTimeoutInMs,
                                           org.refcodes.mixin.ConcatenateMode aCrcChecksumConcatenateMode,
                                           org.refcodes.numerical.Endianess aEndianess)
      • StopAndWaitSegmentDecorator

        public StopAndWaitSegmentDecorator​(DECORATEE aDecoratee,
                                           org.refcodes.mixin.ConcatenateMode aSequenceNumberConcatenateMode,
                                           byte[] aAcknowledgeMagicBytes,
                                           int aAckRetryNumber,
                                           long aAckTimeoutInMs,
                                           org.refcodes.numerical.CrcAlgorithm aCrcAlgorithm,
                                           org.refcodes.mixin.ConcatenateMode aCrcChecksumConcatenateMode,
                                           org.refcodes.numerical.ChecksumValidationMode aCrcChecksumValidationMode,
                                           org.refcodes.numerical.Endianess aEndianess)
      • StopAndWaitSegmentDecorator

        public StopAndWaitSegmentDecorator​(DECORATEE aDecoratee,
                                           org.refcodes.mixin.ConcatenateMode aSequenceNumberConcatenateMode,
                                           byte[] aAcknowledgeMagicBytes,
                                           int aAckRetryNumber,
                                           long aAckTimeoutInMs,
                                           org.refcodes.numerical.CrcAlgorithm aCrcAlgorithm,
                                           org.refcodes.mixin.ConcatenateMode aCrcChecksumConcatenateMode,
                                           org.refcodes.numerical.Endianess aEndianess)
      • StopAndWaitSegmentDecorator

        public StopAndWaitSegmentDecorator​(DECORATEE aDecoratee,
                                           org.refcodes.mixin.ConcatenateMode aSequenceNumberConcatenateMode,
                                           byte[] aAcknowledgeMagicBytes,
                                           int aAckRetryNumber,
                                           long aAckTimeoutInMs,
                                           org.refcodes.numerical.CrcAlgorithm aCrcAlgorithm,
                                           org.refcodes.numerical.Endianess aEndianess)
      • StopAndWaitSegmentDecorator

        public StopAndWaitSegmentDecorator​(DECORATEE aDecoratee,
                                           org.refcodes.mixin.ConcatenateMode aSequenceNumberConcatenateMode,
                                           byte[] aAcknowledgeMagicBytes,
                                           int aAckRetryNumber,
                                           long aAckTimeoutInMs,
                                           org.refcodes.numerical.Endianess aEndianess)
      • StopAndWaitSegmentDecorator

        public StopAndWaitSegmentDecorator​(DECORATEE aDecoratee,
                                           org.refcodes.mixin.ConcatenateMode aSequenceNumberConcatenateMode,
                                           byte[] aAcknowledgeMagicBytes,
                                           int aAckRetryNumber,
                                           long aAckTimeoutInMs,
                                           SegmentPackager aAckSegmentPackager,
                                           org.refcodes.numerical.Endianess aEndianess)
      • StopAndWaitSegmentDecorator

        public StopAndWaitSegmentDecorator​(DECORATEE aDecoratee,
                                           org.refcodes.mixin.ConcatenateMode aCrcChecksumConcatenateMode)
      • StopAndWaitSegmentDecorator

        public StopAndWaitSegmentDecorator​(DECORATEE aDecoratee,
                                           org.refcodes.numerical.CrcAlgorithm aCrcAlgorithm,
                                           org.refcodes.mixin.ConcatenateMode aCrcChecksumConcatenateMode,
                                           org.refcodes.numerical.ChecksumValidationMode aCrcChecksumValidationMode)
      • StopAndWaitSegmentDecorator

        public StopAndWaitSegmentDecorator​(DECORATEE aDecoratee,
                                           org.refcodes.numerical.CrcAlgorithm aCrcAlgorithm,
                                           org.refcodes.mixin.ConcatenateMode aCrcChecksumConcatenateMode)
      • StopAndWaitSegmentDecorator

        public StopAndWaitSegmentDecorator​(DECORATEE aDecoratee,
                                           org.refcodes.numerical.CrcAlgorithm aCrcAlgorithm)
      • StopAndWaitSegmentDecorator

        public StopAndWaitSegmentDecorator​(DECORATEE aDecoratee,
                                           int aSequenceNumberInitValue,
                                           int aSequenceNumberWidth,
                                           org.refcodes.mixin.ConcatenateMode aSequenceNumberConcatenateMode,
                                           byte[] aAcknowledgeMagicBytes,
                                           int aAckRetryNumber,
                                           long aAckTimeoutInMs,
                                           org.refcodes.mixin.ConcatenateMode aCrcChecksumConcatenateMode,
                                           org.refcodes.numerical.Endianess aEndianess)
      • StopAndWaitSegmentDecorator

        public StopAndWaitSegmentDecorator​(DECORATEE aDecoratee,
                                           int aSequenceNumberInitValue,
                                           int aSequenceNumberWidth,
                                           org.refcodes.mixin.ConcatenateMode aSequenceNumberConcatenateMode,
                                           byte[] aAcknowledgeMagicBytes,
                                           int aAckRetryNumber,
                                           long aAckTimeoutInMs,
                                           org.refcodes.numerical.CrcAlgorithm aCrcAlgorithm,
                                           org.refcodes.mixin.ConcatenateMode aCrcChecksumConcatenateMode,
                                           org.refcodes.numerical.ChecksumValidationMode aCrcChecksumValidationMode,
                                           org.refcodes.numerical.Endianess aEndianess)
      • StopAndWaitSegmentDecorator

        public StopAndWaitSegmentDecorator​(DECORATEE aDecoratee,
                                           int aSequenceNumberInitValue,
                                           int aSequenceNumberWidth,
                                           org.refcodes.mixin.ConcatenateMode aSequenceNumberConcatenateMode,
                                           byte[] aAcknowledgeMagicBytes,
                                           int aAckRetryNumber,
                                           long aAckTimeoutInMs,
                                           org.refcodes.numerical.CrcAlgorithm aCrcAlgorithm,
                                           org.refcodes.mixin.ConcatenateMode aCrcChecksumConcatenateMode,
                                           org.refcodes.numerical.Endianess aEndianess)
      • StopAndWaitSegmentDecorator

        public StopAndWaitSegmentDecorator​(DECORATEE aDecoratee,
                                           int aSequenceNumberInitValue,
                                           int aSequenceNumberWidth,
                                           org.refcodes.mixin.ConcatenateMode aSequenceNumberConcatenateMode,
                                           byte[] aAcknowledgeMagicBytes,
                                           int aAckRetryNumber,
                                           long aAckTimeoutInMs,
                                           org.refcodes.numerical.CrcAlgorithm aCrcAlgorithm,
                                           org.refcodes.numerical.Endianess aEndianess)
      • StopAndWaitSegmentDecorator

        public StopAndWaitSegmentDecorator​(DECORATEE aDecoratee,
                                           int aSequenceNumberInitValue,
                                           int aSequenceNumberWidth,
                                           org.refcodes.mixin.ConcatenateMode aSequenceNumberConcatenateMode,
                                           byte[] aAcknowledgeMagicBytes,
                                           int aAckRetryNumber,
                                           long aAckTimeoutInMs,
                                           org.refcodes.numerical.Endianess aEndianess)
      • StopAndWaitSegmentDecorator

        public StopAndWaitSegmentDecorator​(DECORATEE aDecoratee,
                                           int aSequenceNumberInitValue,
                                           int aSequenceNumberWidth,
                                           org.refcodes.mixin.ConcatenateMode aSequenceNumberConcatenateMode,
                                           byte[] aAcknowledgeMagicBytes,
                                           int aAckRetryNumber,
                                           long aAckTimeoutInMs,
                                           SegmentPackager aAckSegmentPackager,
                                           org.refcodes.numerical.Endianess aEndianess)
      • StopAndWaitSegmentDecorator

        public StopAndWaitSegmentDecorator​(DECORATEE aDecoratee,
                                           SegmentPackager aAckSegmentPackager)
      • StopAndWaitSegmentDecorator

        public StopAndWaitSegmentDecorator​(DECORATEE aDecoratee)
    • Method Detail

      • fromTransmission

        public int fromTransmission​(Sequence aSequence,
                                    int aOffset)
                             throws TransmissionException
        (Re-)initializes this instance with the the given Sequence data.
        Specified by:
        fromTransmission in interface Segment
        Parameters:
        aSequence - The Sequence data from which to (re-)initialize this instance.
        aOffset - The offset where to start processing the provided Sequence.
        Returns:
        The index after the last offset into the given Sequence processed by this method.
        Throws:
        TransmissionException - thrown in case a given Sequence cannot be processed.
      • receiveFrom

        public void receiveFrom​(InputStream aInputStream,
                                OutputStream aReturnStream)
                         throws IOException,
                                TransmissionException
        (Re-)initializes this instance by receiving the according Sequence from the given InputStream. Implementations providing error correction methods use the provided feedback OutputStream to do some sort of "stop-and-wait ARQ" or apply similar methods to ensure correctness of the received data.
        Specified by:
        receiveFrom in interface Segment
        Parameters:
        aInputStream - The InputStream from which to read the instance's (re-)initialization Sequence from.
        aReturnStream - An OutputStream being the return channel to handle "stop-and-wait ARQ" or the like in case of a bidirectional connection. Can be null in case we have a unidirectional connection.
        Throws:
        IOException - thrown in case reading data from the InputStream caused problems.
        TransmissionException - thrown in case a given transmission cannot be processed.