diff --git a/common/bufio/writer.go b/common/bufio/writer.go index 71e6f052..fb402c6c 100644 --- a/common/bufio/writer.go +++ b/common/bufio/writer.go @@ -25,6 +25,7 @@ func NewWriter(rawWriter io.Writer) *BufferedWriter { } } +// ReadFrom implements io.ReaderFrom.ReadFrom(). func (v *BufferedWriter) ReadFrom(reader io.Reader) (int64, error) { totalBytes := int64(0) for { @@ -65,6 +66,7 @@ func (v *BufferedWriter) Write(b []byte) (int, error) { return len(b), nil } +// Flush writes all buffered content into underlying writer, if any. func (v *BufferedWriter) Flush() error { defer v.buffer.Clear() for !v.buffer.IsEmpty() { @@ -77,10 +79,12 @@ func (v *BufferedWriter) Flush() error { return nil } -func (v *BufferedWriter) Buffered() bool { +// IsBuffered returns true if this BufferedWriter holds a buffer. +func (v *BufferedWriter) IsBuffered() bool { return v.buffered } +// SetBuffered controls whether the BufferedWriter holds a buffer for writing. If not buffered, any write() calls into underlying writer directly. func (v *BufferedWriter) SetBuffered(cached bool) { v.buffered = cached if !cached && !v.buffer.IsEmpty() { diff --git a/common/bufio/writer_test.go b/common/bufio/writer_test.go index 77ec700a..d9e241cc 100644 --- a/common/bufio/writer_test.go +++ b/common/bufio/writer_test.go @@ -15,7 +15,7 @@ func TestBufferedWriter(t *testing.T) { content := buf.New() writer := NewWriter(content) - assert.Bool(writer.Buffered()).IsTrue() + assert.Bool(writer.IsBuffered()).IsTrue() payload := make([]byte, 16) @@ -35,7 +35,7 @@ func TestBufferedWriterLargePayload(t *testing.T) { content := buf.NewLocal(128 * 1024) writer := NewWriter(content) - assert.Bool(writer.Buffered()).IsTrue() + assert.Bool(writer.IsBuffered()).IsTrue() payload := make([]byte, 64*1024) rand.Read(payload)