Class AbstractSectionDecorator<SECTION extends Section>

java.lang.Object
org.refcodes.serial.AbstractTransmissionDecorator<SECTION>
org.refcodes.serial.AbstractSectionDecorator<SECTION>
Type Parameters:
SECTION - the generic type
All Implemented Interfaces:
Serializable, org.refcodes.mixin.DecorateeAccessor<SECTION>, org.refcodes.mixin.LengthAccessor, org.refcodes.mixin.Resetable, org.refcodes.mixin.Schemable, Section, Transmission, Transmission.TransmissionMixin

public class AbstractSectionDecorator<SECTION extends Section> extends AbstractTransmissionDecorator<SECTION> implements Section
Convenience class for easily decorating a Section.
See Also:
  • Constructor Details

    • AbstractSectionDecorator

      public AbstractSectionDecorator()
    • AbstractSectionDecorator

      public AbstractSectionDecorator(SECTION aDecoratee)
      Instantiates a new abstract section decorator.
      Parameters:
      aDecoratee - the a decoratee
  • Method Details

    • transmitTo

      public void transmitTo(OutputStream aOutputStream, InputStream aReturnStream) throws IOException
      Transmits the Sequence representing the implementing type's instance to the given OutputStream. Implementations providing error correction methods use the provided feedback InputStream to do some sort of "stop-and-wait ARQ" or apply similar methods to ensure correctness of the transmitted data.
      Specified by:
      transmitTo in interface Transmission
      Specified by:
      transmitTo in interface Transmission.TransmissionMixin
      Parameters:
      aOutputStream - The OutputStream where to write this instance's Sequence to.
      aReturnStream - An InputStream 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 writing data to the OutputStream caused problems.
    • toSchema

      public SerialSchema toSchema()
      Specified by:
      toSchema in interface org.refcodes.mixin.Schemable
      Specified by:
      toSchema in interface Transmission
    • fromTransmission

      public void fromTransmission(Sequence aSequence, int aOffset, int aLength) throws TransmissionException
      (Re-)initializes this instance with the the given Sequence data.
      Specified by:
      fromTransmission in interface Section
      Parameters:
      aSequence - The Sequence data from which to (re-)initialize this instance.
      aOffset - The offset where to start processing the provided Sequence.
      aLength - The length of data assigned by the Sequence.
      Throws:
      TransmissionException - thrown in case a given Sequence cannot be processed.
    • receiveFrom

      public void receiveFrom(InputStream aInputStream, int aLength, OutputStream aReturnStream) throws IOException
      (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 Section
      Parameters:
      aInputStream - The InputStream from which to read the instance's (re-)initialization Sequence from.
      aLength - The length of data assigned by the byte array.
      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 InputStream bytes cannot be processed.