istream-private.h revision 6f08b98ac63c25b747120d0c8f8e319b4e26ab0f
1ac7c8e9040e0d0b7e9f849e45b94bfe919595a9Timo Sirainen/* inheritance: */
b004d46b9bfe4144761fa5c3f3a4cd4a4b8c957fTimo Sirainen/* methods: */
1ac7c8e9040e0d0b7e9f849e45b94bfe919595a9Timo Sirainen ssize_t (*read)(struct istream_private *stream);
1ac7c8e9040e0d0b7e9f849e45b94bfe919595a9Timo Sirainen const struct stat *(*stat)(struct istream_private *stream, bool exact);
1ac7c8e9040e0d0b7e9f849e45b94bfe919595a9Timo Sirainen int (*get_size)(struct istream_private *stream, bool exact, uoff_t *size_r);
1ac7c8e9040e0d0b7e9f849e45b94bfe919595a9Timo Sirainen const unsigned char *buffer;
1ac7c8e9040e0d0b7e9f849e45b94bfe919595a9Timo Sirainen size_t buffer_size, max_buffer_size, init_buffer_size;
1ac7c8e9040e0d0b7e9f849e45b94bfe919595a9Timo Sirainen struct istream *parent; /* for filter streams */
1ac7c8e9040e0d0b7e9f849e45b94bfe919595a9Timo Sirainen /* parent stream's expected offset is kept here. i_stream_read()
1ac7c8e9040e0d0b7e9f849e45b94bfe919595a9Timo Sirainen always seeks parent stream to here before calling read(). */
dd4f30895ebbddd77e000472fbadcb3128ae2883Timo Sirainen /* increased every time the stream is changed (e.g. seek, read).
57bf90f66f393c2807b2fc543655013f61d1d9e4Timo Sirainen this way streams can check if their parent streams have been
57bf90f66f393c2807b2fc543655013f61d1d9e4Timo Sirainen accessed behind them. */
1ac7c8e9040e0d0b7e9f849e45b94bfe919595a9Timo Sirainen string_t *line_str; /* for i_stream_next_line() if w_buffer == NULL */
1ac7c8e9040e0d0b7e9f849e45b94bfe919595a9Timo Sirainen unsigned int stream_size_passthrough:1; /* stream is parent's size */
1ac7c8e9040e0d0b7e9f849e45b94bfe919595a9Timo Siraineni_stream_create(struct istream_private *stream, struct istream *parent, int fd)
1ac7c8e9040e0d0b7e9f849e45b94bfe919595a9Timo Sirainenvoid i_stream_compress(struct istream_private *stream);
1ac7c8e9040e0d0b7e9f849e45b94bfe919595a9Timo Sirainenvoid i_stream_grow_buffer(struct istream_private *stream, size_t bytes);
1ac7c8e9040e0d0b7e9f849e45b94bfe919595a9Timo Siraineni_stream_try_alloc(struct istream_private *stream,