ostream-buffer.c revision a067446575cf5ce63f4a64fa0eb4aac16e591e89
76b43e4417bab52e913da39b5f5bc2a130d3f149Timo Sirainen/* Copyright (c) 2002-2016 Dovecot authors, see the included COPYING file */
16f46efe0e090fe6975acf012a61a160f4787985Andrey Paninstatic int o_stream_buffer_seek(struct ostream_private *stream, uoff_t offset)
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen struct buffer_ostream *bstream = (struct buffer_ostream *)stream;
25757faf029c369a8318349dafe952e2358df1d8Timo Siraineno_stream_buffer_write_at(struct ostream_private *stream,
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen struct buffer_ostream *bstream = (struct buffer_ostream *)stream;
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen buffer_write(bstream->buf, offset, data, size);
25757faf029c369a8318349dafe952e2358df1d8Timo Siraineno_stream_buffer_sendv(struct ostream_private *stream,
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen const struct const_iovec *iov, unsigned int iov_count)
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen struct buffer_ostream *bstream = (struct buffer_ostream *)stream;
d1414c09cf0d58ac983054e2f4e1a1f329272dcfTimo Sirainen unsigned int i;
d1414c09cf0d58ac983054e2f4e1a1f329272dcfTimo Sirainen offset = bstream->seeked ? stream->ostream.offset : bstream->buf->used;
c57776c06ec99ba9b0dafdbf9475ea72ea8ca134Timo Sirainen for (i = 0; i < iov_count; i++) {
d1414c09cf0d58ac983054e2f4e1a1f329272dcfTimo Sirainen buffer_write(bstream->buf, offset, iov[i].iov_base, n);
e70d5895795732b8247ab9abb045b438e954bc46Timo Sirainenstruct ostream *o_stream_create_buffer(buffer_t *buf)
648d24583c1574441c4fa0331a90bd4d6e7996c5Timo Sirainen /* we don't set buffer as blocking, because if max_buffer_size is
e70d5895795732b8247ab9abb045b438e954bc46Timo Sirainen changed it can get truncated. this is used in various places in
e70d5895795732b8247ab9abb045b438e954bc46Timo Sirainen unit tests. */
1ddec6312bc6882aeb17d4d46d19cbca1723b68bTimo Sirainen bstream->ostream.max_buffer_size = (size_t)-1;
1ddec6312bc6882aeb17d4d46d19cbca1723b68bTimo Sirainen bstream->ostream.sendv = o_stream_buffer_sendv;
1ddec6312bc6882aeb17d4d46d19cbca1723b68bTimo Sirainen bstream->ostream.write_at = o_stream_buffer_write_at;