annotate src/lib/iostream-private.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 ca2f5d3575b3
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
13529
cf77e448295c Renamed lib/*-internal.h files to lib/*-private.h for consistency.
Timo Sirainen <tss@iki.fi>
parents: 10847
diff changeset
1 #ifndef IOSTREAM_PRIVATE_H
cf77e448295c Renamed lib/*-internal.h files to lib/*-private.h for consistency.
Timo Sirainen <tss@iki.fi>
parents: 10847
diff changeset
2 #define IOSTREAM_PRIVATE_H
764
f57c52738f90 Renamed IBuffer and OBuffer to IStream and OStream which describes their
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
3
18989
ca2f5d3575b3 lib: Added io_stream_get_disconnect_reason() to iostream.h
Timo Sirainen <tss@iki.fi>
parents: 18164
diff changeset
4 #include "iostream.h"
ca2f5d3575b3 lib: Added io_stream_get_disconnect_reason() to iostream.h
Timo Sirainen <tss@iki.fi>
parents: 18164
diff changeset
5
2421
d141e1bfdd63 We never do blocking reads/writes to network anymore. Changed imap and pop3
Timo Sirainen <tss@iki.fi>
parents: 1870
diff changeset
6 /* This file is private to input stream and output stream implementations */
764
f57c52738f90 Renamed IBuffer and OBuffer to IStream and OStream which describes their
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
7
16236
81d87e43e167 istream API change: Added support for multiple destroy callbacks.
Timo Sirainen <tss@iki.fi>
parents: 16020
diff changeset
8 struct iostream_destroy_callback {
81d87e43e167 istream API change: Added support for multiple destroy callbacks.
Timo Sirainen <tss@iki.fi>
parents: 16020
diff changeset
9 void (*callback)(void *context);
81d87e43e167 istream API change: Added support for multiple destroy callbacks.
Timo Sirainen <tss@iki.fi>
parents: 16020
diff changeset
10 void *context;
81d87e43e167 istream API change: Added support for multiple destroy callbacks.
Timo Sirainen <tss@iki.fi>
parents: 16020
diff changeset
11 };
81d87e43e167 istream API change: Added support for multiple destroy callbacks.
Timo Sirainen <tss@iki.fi>
parents: 16020
diff changeset
12
6415
b0096861c390 Renamed struct _[io]stream to struct [io]stream_private. Also removed _
Timo Sirainen <tss@iki.fi>
parents: 6410
diff changeset
13 struct iostream_private {
764
f57c52738f90 Renamed IBuffer and OBuffer to IStream and OStream which describes their
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
14 int refcount;
10847
5f16e488e7f6 i/ostreams can now have a name (e.g. file path).
Timo Sirainen <tss@iki.fi>
parents: 7023
diff changeset
15 char *name;
16772
e35be66003e2 iostream: Added ability to set/get error strings for streams.
Timo Sirainen <tss@iki.fi>
parents: 16236
diff changeset
16 char *error;
764
f57c52738f90 Renamed IBuffer and OBuffer to IStream and OStream which describes their
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
17
16020
6cabb95d32ec iostreams: Added close_parent flag to close() handler and clarified close/destroy APIs.
Timo Sirainen <tss@iki.fi>
parents: 13529
diff changeset
18 void (*close)(struct iostream_private *streami, bool close_parent);
6415
b0096861c390 Renamed struct _[io]stream to struct [io]stream_private. Also removed _
Timo Sirainen <tss@iki.fi>
parents: 6410
diff changeset
19 void (*destroy)(struct iostream_private *stream);
b0096861c390 Renamed struct _[io]stream to struct [io]stream_private. Also removed _
Timo Sirainen <tss@iki.fi>
parents: 6410
diff changeset
20 void (*set_max_buffer_size)(struct iostream_private *stream,
b0096861c390 Renamed struct _[io]stream to struct [io]stream_private. Also removed _
Timo Sirainen <tss@iki.fi>
parents: 6410
diff changeset
21 size_t max_size);
7023
56a5a00e490c Added i_stream_set_destroy_callback().
Timo Sirainen <tss@iki.fi>
parents: 6415
diff changeset
22
16236
81d87e43e167 istream API change: Added support for multiple destroy callbacks.
Timo Sirainen <tss@iki.fi>
parents: 16020
diff changeset
23 ARRAY(struct iostream_destroy_callback) destroy_callbacks;
764
f57c52738f90 Renamed IBuffer and OBuffer to IStream and OStream which describes their
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
24 };
f57c52738f90 Renamed IBuffer and OBuffer to IStream and OStream which describes their
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
25
6415
b0096861c390 Renamed struct _[io]stream to struct [io]stream_private. Also removed _
Timo Sirainen <tss@iki.fi>
parents: 6410
diff changeset
26 void io_stream_init(struct iostream_private *stream);
b0096861c390 Renamed struct _[io]stream to struct [io]stream_private. Also removed _
Timo Sirainen <tss@iki.fi>
parents: 6410
diff changeset
27 void io_stream_ref(struct iostream_private *stream);
b0096861c390 Renamed struct _[io]stream to struct [io]stream_private. Also removed _
Timo Sirainen <tss@iki.fi>
parents: 6410
diff changeset
28 void io_stream_unref(struct iostream_private *stream);
16020
6cabb95d32ec iostreams: Added close_parent flag to close() handler and clarified close/destroy APIs.
Timo Sirainen <tss@iki.fi>
parents: 13529
diff changeset
29 void io_stream_close(struct iostream_private *stream, bool close_parent);
6415
b0096861c390 Renamed struct _[io]stream to struct [io]stream_private. Also removed _
Timo Sirainen <tss@iki.fi>
parents: 6410
diff changeset
30 void io_stream_set_max_buffer_size(struct iostream_private *stream,
b0096861c390 Renamed struct _[io]stream to struct [io]stream_private. Also removed _
Timo Sirainen <tss@iki.fi>
parents: 6410
diff changeset
31 size_t max_size);
18164
4723cecff76c lib: Added o_stream_add_destroy_callback()
Timo Sirainen <tss@iki.fi>
parents: 16813
diff changeset
32 void io_stream_add_destroy_callback(struct iostream_private *stream,
4723cecff76c lib: Added o_stream_add_destroy_callback()
Timo Sirainen <tss@iki.fi>
parents: 16813
diff changeset
33 void (*callback)(void *), void *context);
4723cecff76c lib: Added o_stream_add_destroy_callback()
Timo Sirainen <tss@iki.fi>
parents: 16813
diff changeset
34 void io_stream_remove_destroy_callback(struct iostream_private *stream,
4723cecff76c lib: Added o_stream_add_destroy_callback()
Timo Sirainen <tss@iki.fi>
parents: 16813
diff changeset
35 void (*callback)(void *));
16772
e35be66003e2 iostream: Added ability to set/get error strings for streams.
Timo Sirainen <tss@iki.fi>
parents: 16236
diff changeset
36 /* Set a specific error for the stream. This shouldn't be used for regular
e35be66003e2 iostream: Added ability to set/get error strings for streams.
Timo Sirainen <tss@iki.fi>
parents: 16236
diff changeset
37 syscall errors where stream's errno is enough, since it's used by default.
e35be66003e2 iostream: Added ability to set/get error strings for streams.
Timo Sirainen <tss@iki.fi>
parents: 16236
diff changeset
38 The stream errno must always be set even if the error string is also set.
e35be66003e2 iostream: Added ability to set/get error strings for streams.
Timo Sirainen <tss@iki.fi>
parents: 16236
diff changeset
39 Setting this error replaces the previously set error. */
e35be66003e2 iostream: Added ability to set/get error strings for streams.
Timo Sirainen <tss@iki.fi>
parents: 16236
diff changeset
40 void io_stream_set_error(struct iostream_private *stream,
e35be66003e2 iostream: Added ability to set/get error strings for streams.
Timo Sirainen <tss@iki.fi>
parents: 16236
diff changeset
41 const char *fmt, ...) ATTR_FORMAT(2, 3);
16813
a919c43ab91b lib: Added [io]_stream_create_error_str()
Timo Sirainen <tss@iki.fi>
parents: 16772
diff changeset
42 void io_stream_set_verror(struct iostream_private *stream,
a919c43ab91b lib: Added [io]_stream_create_error_str()
Timo Sirainen <tss@iki.fi>
parents: 16772
diff changeset
43 const char *fmt, va_list args) ATTR_FORMAT(2, 0);
764
f57c52738f90 Renamed IBuffer and OBuffer to IStream and OStream which describes their
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
44
f57c52738f90 Renamed IBuffer and OBuffer to IStream and OStream which describes their
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
45 #endif