Package net.morimekta.providence.streams
Class MessageSpliterator<Message extends PMessage<Message>>
- java.lang.Object
-
- net.morimekta.providence.streams.MessageSpliterator<Message>
-
- All Implemented Interfaces:
java.util.Spliterator<Message>
public class MessageSpliterator<Message extends PMessage<Message>> extends java.lang.Object implements java.util.Spliterator<Message>
Spliterator that reads messages from a stream.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface java.util.Spliterator
java.util.Spliterator.OfDouble, java.util.Spliterator.OfInt, java.util.Spliterator.OfLong, java.util.Spliterator.OfPrimitive<T extends java.lang.Object,T_CONS extends java.lang.Object,T_SPLITR extends java.util.Spliterator.OfPrimitive<T,T_CONS,T_SPLITR>>
-
-
Constructor Summary
Constructors Constructor Description MessageSpliterator(java.io.InputStream in, Serializer serializer, PMessageDescriptor<Message> descriptor)
Make a self-closing message spliterator.MessageSpliterator(java.io.InputStream in, Serializer serializer, PMessageDescriptor<Message> descriptor, java.io.Closeable closer)
Make a spliterator with specific closing function.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description int
characteristics()
Ordered, non-null and immutable.long
estimateSize()
We mostly never know the number of messages in a message stream until the last message has been read.java.util.Comparator<? super Message>
getComparator()
Messages are comparable.long
getExactSizeIfKnown()
We mostly never know the number of messages in a message stream until the last message has been read.boolean
tryAdvance(java.util.function.Consumer<? super Message> action)
java.util.Spliterator<Message>
trySplit()
Normally we cannot split the stream.
-
-
-
Constructor Detail
-
MessageSpliterator
public MessageSpliterator(@Nonnull java.io.InputStream in, @Nonnull Serializer serializer, @Nonnull PMessageDescriptor<Message> descriptor)
Make a self-closing message spliterator.- Parameters:
in
- Input stream to read from.serializer
- Serializer to use.descriptor
- The message descriptor of contained messages.
-
MessageSpliterator
public MessageSpliterator(@Nonnull java.io.InputStream in, @Nonnull Serializer serializer, @Nonnull PMessageDescriptor<Message> descriptor, @Nullable java.io.Closeable closer)
Make a spliterator with specific closing function.- Parameters:
in
- Input stream to read from.serializer
- Serializer to use.descriptor
- The message descriptor of contained messages.closer
- The stream closer function. If null nothing is done when closing the spliterator.
-
-
Method Detail
-
tryAdvance
public boolean tryAdvance(java.util.function.Consumer<? super Message> action)
-
trySplit
public java.util.Spliterator<Message> trySplit()
Normally we cannot split the stream.
-
estimateSize
public long estimateSize()
We mostly never know the number of messages in a message stream until the last message has been read.
-
getExactSizeIfKnown
public long getExactSizeIfKnown()
We mostly never know the number of messages in a message stream until the last message has been read.
-
characteristics
public int characteristics()
Ordered, non-null and immutable.
-
-