@Override public Publisher<IN> decode(final Publisher<? extends Buffer> publisherToDecode) { if (true) { return super.decode(publisherToDecode); } return PublisherFactory.intercept(publisherToDecode, new Function<Subscriber<? super IN>, SubscriberBarrier<Buffer, IN>>() { @Override public SubscriberBarrier<Buffer, IN> apply(final Subscriber<? super IN> subscriber) { return new AggregatingDecoderBarrier<IN>(BufferCodec.this, subscriber); } }); }
@Override public void subscribe(Subscriber<? super V> s) { codec.decode(Stream.this).subscribe(s); }
/** * * Use the given {@link Codec} to decode any {@code SRC} data published by the {@code publisher} reference. * Some codec might result into N signals for one SRC data. * * @param codec the codec decoder is going to be used to scan the incoming {@code SRC} data * @param publisher The data stream publisher we want to decode * @param <SRC> The type of the origin value * @param <IN> The type of the decoded value * @return a Stream of decoded values */ public static <SRC, IN> Stream<IN> decode(Codec<SRC, IN, ?> codec, Publisher<? extends SRC> publisher){ return Streams.wrap(codec.decode(publisher)); }
@Override public void subscribe(Subscriber<? super V> s) { codec.decode(Stream.this).subscribe(s); }
/** * * Use the given {@link Codec} to decode any {@code SRC} data published by the {@code publisher} reference. * Some codec might result into N signals for one SRC data. * * @param codec the codec decoder is going to be used to scan the incoming {@code SRC} data * @param publisher The data stream publisher we want to decode * @param <SRC> The type of the origin value * @param <IN> The type of the decoded value * @return a Stream of decoded values */ public static <SRC, IN> Stream<IN> decode(Codec<SRC, IN, ?> codec, Publisher<? extends SRC> publisher){ return Streams.wrap(codec.decode(publisher)); }
/** * * @return */ public Function<? super Publisher<ByteBuf>, ? extends Publisher<IN>> decoder() { return flux -> codec.decode(Flux.from(flux) .map(bb -> new Buffer(bb.nioBuffer()))); }