pull/314/head
Darien Raymond 8 years ago
parent ecd0cf2fe2
commit c884d04c7b
No known key found for this signature in database
GPG Key ID: 7251FFA14BB18169

@ -20,14 +20,16 @@ type Buffer struct {
pool Pool pool Pool
Value []byte Value []byte
offset int offset int
startingOffset int
} }
func CreateBuffer(container []byte, parent Pool) *Buffer { func CreateBuffer(container []byte, offset int, parent Pool) *Buffer {
b := new(Buffer) b := new(Buffer)
b.head = container b.head = container
b.pool = parent b.pool = parent
b.Value = b.head[defaultOffset:] b.Value = b.head[offset:]
b.offset = defaultOffset b.offset = offset
b.startingOffset = offset
return b return b
} }
@ -47,15 +49,15 @@ func (b *Buffer) Release() {
// Clear clears the content of the buffer, results an empty buffer with // Clear clears the content of the buffer, results an empty buffer with
// Len() = 0. // Len() = 0.
func (b *Buffer) Clear() *Buffer { func (b *Buffer) Clear() *Buffer {
b.offset = defaultOffset b.offset = b.startingOffset
b.Value = b.head[b.offset:b.offset] b.Value = b.head[b.offset:b.offset]
return b return b
} }
// Reset resets this Buffer into its original state. // Reset resets this Buffer into its original state.
func (b *Buffer) Reset() *Buffer { func (b *Buffer) Reset() *Buffer {
b.offset = defaultOffset b.offset = b.startingOffset
b.Value = b.head b.Value = b.head[b.offset:]
return b return b
} }
@ -219,5 +221,5 @@ func NewBuffer() *Buffer {
//} //}
func NewLocalBuffer(size int) *Buffer { func NewLocalBuffer(size int) *Buffer {
return CreateBuffer(make([]byte, size), nil) return CreateBuffer(make([]byte, size), defaultOffset, nil)
} }

@ -36,7 +36,7 @@ func (p *BufferPool) Allocate() *Buffer {
default: default:
b = p.allocator.Get().([]byte) b = p.allocator.Get().([]byte)
} }
return CreateBuffer(b, p) return CreateBuffer(b, defaultOffset, p)
} }
func (p *BufferPool) Free(buffer *Buffer) { func (p *BufferPool) Free(buffer *Buffer) {
@ -63,7 +63,6 @@ const (
var ( var (
mediumPool *BufferPool mediumPool *BufferPool
//largePool *BufferPool
) )
func init() { func init() {
@ -77,5 +76,4 @@ func init() {
} }
totalByteSize := size * 1024 * 1024 totalByteSize := size * 1024 * 1024
mediumPool = NewBufferPool(mediumBufferByteSize, totalByteSize/mediumBufferByteSize) mediumPool = NewBufferPool(mediumBufferByteSize, totalByteSize/mediumBufferByteSize)
//largePool = NewBufferPool(largeBufferByteSize, totalByteSize/4/largeBufferByteSize)
} }

Loading…
Cancel
Save