Class AllocSegmentBody<DECORATEE extends Section>

java.lang.Object
org.refcodes.serial.AbstractTransmissionDecorator<DECORATEE>
org.refcodes.serial.AllocSegmentBody<DECORATEE>
Type Parameters:
DECORATEE - The type of the Segment decoratee.
All Implemented Interfaces:
Serializable, org.refcodes.mixin.DecorateeAccessor<DECORATEE>, org.refcodes.mixin.LengthAccessor, org.refcodes.mixin.Resetable, org.refcodes.mixin.Schemable, AllocLengthAccessor, AllocLengthAccessor.AllocLengthMutator, AllocLengthAccessor.AllocLengthProperty, Segment, Transmission, Transmission.TransmissionMixin

public class AllocSegmentBody<DECORATEE extends Section> extends AbstractTransmissionDecorator<DECORATEE> implements Segment, AllocLengthAccessor.AllocLengthProperty
An AllocSegmentBody provides an Segment with an allocation length. An AllocSegmentHead provides the allocation length for a AllocSegmentBody. Therefore the AllocSegmentHead references a AllocSegmentBody. The AllocSegmentHead manages the Sequence regarding the allocation length whereas the AllocSegmentBody manages the decorated Segment by harnessing the allocation length provided by the AllocSegmentHead.
See Also:
  • Constructor Details

  • Method Details

    • 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
      (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.
    • getAllocLength

      public int getAllocLength()
      Retrieves the allocated length.
      Specified by:
      getAllocLength in interface AllocLengthAccessor
      Returns:
      The allocated length.
    • setAllocLength

      public void setAllocLength(int aValue)
      Sets the allocated length.
      Specified by:
      setAllocLength in interface AllocLengthAccessor.AllocLengthMutator
      Parameters:
      aValue - The allocated length.
    • toSchema

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