view src/lib/istream-chain.h @ 14629:c93ca5e46a8a

Marked functions parameters that are allowed to be NULL. Some APIs were also changed. The non-obvious APIs where NULL parameter was changed to "" are master_service_init() and auth_master_user_list_init(). These checks can currently be enabled only on a patched clang: http://llvm.org/bugs/show_bug.cgi?id=6786
author Timo Sirainen <tss@iki.fi>
date Sun, 24 Jun 2012 00:52:57 +0300
parents 2d9b13930a6a
children
line wrap: on
line source

#ifndef ISTREAM_CHAIN_H
#define ISTREAM_CHAIN_H

struct istream_chain;

/* Flexibly couple input streams into a single chain stream. Input streams can
   be added after creation of the chain stream, and the chain stream will not
   signal EOF until all streams are read to EOF and the last stream added was
   NULL. Streams that were finished to EOF are unreferenced. The chain stream
   is obviously not seekable and it has no determinable size. The chain_r
   argument returns a pointer to the chain object. */
struct istream *i_stream_create_chain(struct istream_chain **chain_r);

/* Append an input stream to the chain. */
void i_stream_chain_append(struct istream_chain *chain, struct istream *stream);
/* Mark the end of the chain. Only then reads from the chain stream can
   return EOF. */
void i_stream_chain_append_eof(struct istream_chain *chain);

#endif