Commit 4b898093 authored by Steven Allen's avatar Steven Allen

make the maximum message size configurable

parent 2471ea54
...@@ -138,10 +138,21 @@ func NewReader(r io.Reader) ReadCloser { ...@@ -138,10 +138,21 @@ func NewReader(r io.Reader) ReadCloser {
return NewReaderWithPool(r, pool.GlobalPool) return NewReaderWithPool(r, pool.GlobalPool)
} }
// NewReaderWithPool wraps an io.Reader with a msgio framed reader. The msgio.Reader // NewReaderSize is equivalent to NewReader but allows one to
// will read whole messages at a time (using the length). Assumes an equivalent // specify a max message size.
// writer on the other side. It uses a given pool.BufferPool func NewReaderSize(r io.Reader, maxMessageSize int) ReadCloser {
return NewReaderSizeWithPool(r, maxMessageSize, pool.GlobalPool)
}
// NewReaderWithPool is the same as NewReader but allows one to specify a buffer
// pool.
func NewReaderWithPool(r io.Reader, p *pool.BufferPool) ReadCloser { func NewReaderWithPool(r io.Reader, p *pool.BufferPool) ReadCloser {
return NewReaderSizeWithPool(r, defaultMaxSize, p)
}
// NewReaderWithPool is the same as NewReader but allows one to specify a buffer
// pool and a max message size.
func NewReaderSizeWithPool(r io.Reader, maxMessageSize int, p *pool.BufferPool) ReadCloser {
if p == nil { if p == nil {
panic("nil pool") panic("nil pool")
} }
...@@ -149,7 +160,7 @@ func NewReaderWithPool(r io.Reader, p *pool.BufferPool) ReadCloser { ...@@ -149,7 +160,7 @@ func NewReaderWithPool(r io.Reader, p *pool.BufferPool) ReadCloser {
R: r, R: r,
next: -1, next: -1,
pool: p, pool: p,
max: defaultMaxSize, max: maxMessageSize,
} }
} }
......
...@@ -74,15 +74,24 @@ type varintReader struct { ...@@ -74,15 +74,24 @@ type varintReader struct {
// Varints read according to https://golang.org/pkg/encoding/binary/#ReadUvarint // Varints read according to https://golang.org/pkg/encoding/binary/#ReadUvarint
// Assumes an equivalent writer on the other side. // Assumes an equivalent writer on the other side.
func NewVarintReader(r io.Reader) ReadCloser { func NewVarintReader(r io.Reader) ReadCloser {
return NewVarintReaderWithPool(r, pool.GlobalPool) return NewVarintReaderSize(r, defaultMaxSize)
} }
// NewVarintReaderWithPool wraps an io.Reader with a varint msgio framed reader. // NewVarintReaderSize is equivalent to NewVarintReader but allows one to
// The msgio.Reader will read whole messages at a time (using the length). // specify a max message size.
// Varints read according to https://golang.org/pkg/encoding/binary/#ReadUvarint func NewVarintReaderSize(r io.Reader, maxMessageSize int) ReadCloser {
// Assumes an equivalent writer on the other side. It uses a given return NewVarintReaderSizeWithPool(r, maxMessageSize, pool.GlobalPool)
// pool.BufferPool. }
// NewVarintReaderWithPool is the same as NewVarintReader but allows one to
// specify a buffer pool.
func NewVarintReaderWithPool(r io.Reader, p *pool.BufferPool) ReadCloser { func NewVarintReaderWithPool(r io.Reader, p *pool.BufferPool) ReadCloser {
return NewVarintReaderSizeWithPool(r, defaultMaxSize, p)
}
// NewVarintReaderWithPool is the same as NewVarintReader but allows one to
// specify a buffer pool and a max message size.
func NewVarintReaderSizeWithPool(r io.Reader, maxMessageSize int, p *pool.BufferPool) ReadCloser {
if p == nil { if p == nil {
panic("nil pool") panic("nil pool")
} }
...@@ -91,7 +100,7 @@ func NewVarintReaderWithPool(r io.Reader, p *pool.BufferPool) ReadCloser { ...@@ -91,7 +100,7 @@ func NewVarintReaderWithPool(r io.Reader, p *pool.BufferPool) ReadCloser {
br: &simpleByteReader{R: r}, br: &simpleByteReader{R: r},
next: -1, next: -1,
pool: p, pool: p,
max: defaultMaxSize, max: maxMessageSize,
} }
} }
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment