protected ChannelStream(final Environment env, Codec<Buffer, IN, OUT> codec, long prefetch, Dispatcher eventsDispatcher) { Assert.notNull(eventsDispatcher, "Events Reactor cannot be null"); this.env = env; this.prefetch = prefetch; this.eventsDispatcher = eventsDispatcher; if (null != codec) { this.decoder = codec.decoder(new Consumer<IN>() { @Override public void accept(IN in) { doDecoded(in); } }); this.encoder = codec.encoder(); } else { this.decoder = null; this.encoder = null; } }