refine buffer usage

This commit is contained in:
Darien Raymond
2016-12-05 15:19:14 +01:00
parent 9ecf89657c
commit cf3eb0e77d
16 changed files with 73 additions and 45 deletions
+28
View File
@@ -117,11 +117,39 @@ func (b *Buffer) PrependHash(h hash.Hash) *Buffer {
return b
}
func (b *Buffer) Byte(index int) byte {
return b.Value[index]
}
// Bytes returns the content bytes of this Buffer.
func (b *Buffer) Bytes() []byte {
return b.Value
}
func (b *Buffer) BytesRange(from, to int) []byte {
if from < 0 {
from += len(b.Value)
}
if to < 0 {
to += len(b.Value)
}
return b.Value[from:to]
}
func (b *Buffer) BytesFrom(from int) []byte {
if from < 0 {
from += len(b.Value)
}
return b.Value[from:]
}
func (b *Buffer) BytesTo(to int) []byte {
if to < 0 {
to += len(b.Value)
}
return b.Value[:to]
}
// Slice cuts the buffer at the given position.
func (b *Buffer) Slice(from, to int) *Buffer {
b.offset += from
+2 -2
View File
@@ -43,10 +43,10 @@ func TestBufferPrepend(t *testing.T) {
buffer.Prepend([]byte{'x', 'y', 'z'})
assert.Int(buffer.Len()).Equals(6)
assert.Bytes(buffer.Value).Equals([]byte("xyzabc"))
assert.String(buffer.String()).Equals("xyzabc")
buffer.Prepend([]byte{'u', 'v', 'w'})
assert.Bytes(buffer.Value).Equals([]byte("uvwxyzabc"))
assert.String(buffer.String()).Equals("uvwxyzabc")
}
func TestBufferString(t *testing.T) {
+1 -1
View File
@@ -87,7 +87,7 @@ func (v *BufferedWriter) Flush() error {
func (v *BufferedWriter) FlushWithoutLock() error {
defer v.buffer.Clear()
for !v.buffer.IsEmpty() {
nBytes, err := v.writer.Write(v.buffer.Value)
nBytes, err := v.writer.Write(v.buffer.Bytes())
if err != nil {
return err
}
+1 -1
View File
@@ -49,5 +49,5 @@ func TestBufferedWriterLargePayload(t *testing.T) {
nBytes, err = writer.Write(payload[1024:])
assert.Error(err).IsNil()
assert.Int(nBytes).Equals(63 * 1024)
assert.Bytes(content.Value).Equals(payload)
assert.Bytes(content.Bytes()).Equals(payload)
}
+1 -1
View File
@@ -30,7 +30,7 @@ func NewAdaptiveWriter(writer io.Writer) *AdaptiveWriter {
func (v *AdaptiveWriter) Write(buffer *alloc.Buffer) error {
defer buffer.Release()
for !buffer.IsEmpty() {
nBytes, err := v.writer.Write(buffer.Value)
nBytes, err := v.writer.Write(buffer.Bytes())
if err != nil {
return err
}
+2 -2
View File
@@ -13,8 +13,8 @@ import (
func TestAdaptiveWriter(t *testing.T) {
assert := assert.On(t)
lb := alloc.NewBuffer()
rand.Read(lb.Value)
lb := alloc.NewBuffer().Clear()
lb.FillFrom(rand.Reader)
writeBuffer := make([]byte, 0, 1024*1024)