annotate src/lib/istream-chain.h @ 22955:812e5c961328

fts: Indexing virtual mailbox didn't always index the last mails
author Timo Sirainen <timo.sirainen@dovecot.fi>
date Thu, 03 May 2018 18:33:00 +0300
parents c93ca5e46a8a
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
14588
2d9b13930a6a Added chain istream.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff changeset
1 #ifndef ISTREAM_CHAIN_H
2d9b13930a6a Added chain istream.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff changeset
2 #define ISTREAM_CHAIN_H
2d9b13930a6a Added chain istream.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff changeset
3
2d9b13930a6a Added chain istream.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff changeset
4 struct istream_chain;
2d9b13930a6a Added chain istream.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff changeset
5
2d9b13930a6a Added chain istream.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff changeset
6 /* Flexibly couple input streams into a single chain stream. Input streams can
2d9b13930a6a Added chain istream.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff changeset
7 be added after creation of the chain stream, and the chain stream will not
2d9b13930a6a Added chain istream.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff changeset
8 signal EOF until all streams are read to EOF and the last stream added was
2d9b13930a6a Added chain istream.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff changeset
9 NULL. Streams that were finished to EOF are unreferenced. The chain stream
2d9b13930a6a Added chain istream.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff changeset
10 is obviously not seekable and it has no determinable size. The chain_r
2d9b13930a6a Added chain istream.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff changeset
11 argument returns a pointer to the chain object. */
2d9b13930a6a Added chain istream.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff changeset
12 struct istream *i_stream_create_chain(struct istream_chain **chain_r);
2d9b13930a6a Added chain istream.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff changeset
13
14629
c93ca5e46a8a Marked functions parameters that are allowed to be NULL. Some APIs were also changed.
Timo Sirainen <tss@iki.fi>
parents: 14588
diff changeset
14 /* Append an input stream to the chain. */
14588
2d9b13930a6a Added chain istream.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff changeset
15 void i_stream_chain_append(struct istream_chain *chain, struct istream *stream);
14629
c93ca5e46a8a Marked functions parameters that are allowed to be NULL. Some APIs were also changed.
Timo Sirainen <tss@iki.fi>
parents: 14588
diff changeset
16 /* Mark the end of the chain. Only then reads from the chain stream can
c93ca5e46a8a Marked functions parameters that are allowed to be NULL. Some APIs were also changed.
Timo Sirainen <tss@iki.fi>
parents: 14588
diff changeset
17 return EOF. */
c93ca5e46a8a Marked functions parameters that are allowed to be NULL. Some APIs were also changed.
Timo Sirainen <tss@iki.fi>
parents: 14588
diff changeset
18 void i_stream_chain_append_eof(struct istream_chain *chain);
14588
2d9b13930a6a Added chain istream.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff changeset
19
2d9b13930a6a Added chain istream.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff changeset
20 #endif