Interface Section

All Superinterfaces:
org.refcodes.mixin.LengthAccessor, org.refcodes.mixin.Schemable<SerialSchema>, Serializable, Transmission
All Known Subinterfaces:
ArraySection<ARRAY>, DecoratorSection<DECORATEE>, PayloadSection<T>, Section.SectionMixin
All Known Implementing Classes:
AbstractPayloadSection, AbstractSectionDecorator, AssertMagicBytesSectionDecorator, BooleanArraySection, BreakerSectionDecorator, ByteArraySection, CharArraySection, CharSection, CipherSectionDecorator, CrcSectionDecorator, DoubleArraySection, DynamicTypeSection, FileSection, FixedSegmentArraySection, FloatArraySection, IntArraySection, InvertibleSectionDecorator, LongArraySection, MagicBytesSectionDecorator, MagicBytesSectionMultiplexer, PropertiesSection, ReadyToReceiveSectionDecorator, ReadyToSendSectionDecorator, SectionComposite, SegmentArraySection, SequenceSection, ShortArraySection, StopAndWaitPacketStreamSectionDecorator, StopAndWaitSectionDecorator, StringArraySection, StringSection

public interface Section extends Transmission
The Section interface enables an implementing type to provide a Sequence representation of itself or to transmit its Sequence representation through an OutputStream (with an optional feedback InputStream) as of Transmission.transmitTo(OutputStream, InputStream) and to initialize with a Sequence representation for itself or to receive a Sequence representation for itself through an InputStream (with an optional feedback OutputStream) as of receiveFrom(InputStream, int, OutputStream). A Section does not have a predictable length and it cannot (by itself) determine itself's length from a provided InputStream or Sequence, therefore a length has to be provided alongside an InputStream or Sequence.