From: Timo Sirainen Date: Fri, 16 Oct 2009 16:30:59 +0000 (-0400) Subject: Added o_stream_get_buffer_avail_size(). X-Git-Tag: 2.0.alpha2~79 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=de954ff15b495be13007a8aca2c09fd1d356a283;p=thirdparty%2Fdovecot%2Fcore.git Added o_stream_get_buffer_avail_size(). --HG-- branch : HEAD --- diff --git a/src/lib/ostream.c b/src/lib/ostream.c index bffda76843..fe92a7b9ce 100644 --- a/src/lib/ostream.c +++ b/src/lib/ostream.c @@ -115,6 +115,14 @@ size_t o_stream_get_buffer_used_size(const struct ostream *stream) _stream->get_used_size(_stream); } +size_t o_stream_get_buffer_avail_size(const struct ostream *stream) +{ + size_t used = o_stream_get_buffer_used_size(stream); + + return stream->real_stream->max_buffer_size <= used ? 0 : + stream->real_stream->max_buffer_size - used; +} + int o_stream_seek(struct ostream *stream, uoff_t offset) { struct ostream_private *_stream = stream->real_stream; diff --git a/src/lib/ostream.h b/src/lib/ostream.h index 92b18c87c6..d28e8a0c2d 100644 --- a/src/lib/ostream.h +++ b/src/lib/ostream.h @@ -72,6 +72,8 @@ int o_stream_flush(struct ostream *stream); void o_stream_set_flush_pending(struct ostream *stream, bool set); /* Returns number of bytes currently in buffer. */ size_t o_stream_get_buffer_used_size(const struct ostream *stream) ATTR_PURE; +/* Returns number of bytes we can still write without failing. */ +size_t o_stream_get_buffer_avail_size(const struct ostream *stream) ATTR_PURE; /* Seek to specified position from beginning of file. This works only for files. Returns 1 if successful, -1 if error. */