istream-tee.h revision c25356d5978632df6203437e1953bcb29e0c736f
56c35c844320b0a157d1aaa6b3e62b7f3851b235Timo Sirainen/* Tee can be used to create multiple child input streams which can access
56c35c844320b0a157d1aaa6b3e62b7f3851b235Timo Sirainen a single non-blocking input stream in a way that data isn't removed from
56c35c844320b0a157d1aaa6b3e62b7f3851b235Timo Sirainen memory until all child streams have consumed the input.
56c35c844320b0a157d1aaa6b3e62b7f3851b235Timo Sirainen If the stream's buffer gets full because some child isn't consuming the
56c35c844320b0a157d1aaa6b3e62b7f3851b235Timo Sirainen data, other streams get returned 0 by i_stream_read(). */
56c35c844320b0a157d1aaa6b3e62b7f3851b235Timo Sirainenstruct tee_istream *tee_i_stream_create(struct istream *input);