Encoder now directly reads from the object stream. Using split.Stream() was causing lot of redundant memory operations.

This commit is contained in:
Krishna Srinivas
2015-07-26 02:17:19 +05:30
parent ed07310471
commit bcfaa12a4d
6 changed files with 79 additions and 17 deletions
+9
View File
@@ -17,6 +17,7 @@
package donut
import (
"io"
"strconv"
encoding "github.com/minio/minio/pkg/erasure"
@@ -86,6 +87,14 @@ func (e encoder) Encode(data []byte) (encodedData [][]byte, err error) {
return encodedData, nil
}
func (e encoder) EncodeStream(data io.Reader, size int64) (encodedData [][]byte, inputData []byte, err error) {
encodedData, inputData, err = e.encoder.EncodeStream(data, size)
if err != nil {
return nil, nil, iodine.New(err, nil)
}
return encodedData, inputData, nil
}
// Decode - erasure decode input encoded bytes
func (e encoder) Decode(encodedData [][]byte, dataLength int) (data []byte, err error) {
decodedData, err := e.encoder.Decode(encodedData, dataLength)