Remove Compress() and Uncompress() from backend

This commit is contained in:
Alexander Neumann 2015-02-16 00:30:51 +01:00
parent b762a342d3
commit 06ed5c12b8
2 changed files with 4 additions and 37 deletions

View File

@ -98,13 +98,14 @@ func (arch *Archiver) Save(t backend.Type, id backend.ID, length uint, rd io.Rea
func (arch *Archiver) SaveTreeJSON(item interface{}) (Blob, error) { func (arch *Archiver) SaveTreeJSON(item interface{}) (Blob, error) {
// convert to json // convert to json
data, err := json.Marshal(item) data, err := json.Marshal(item)
// append newline
data = append(data, '\n')
if err != nil { if err != nil {
return Blob{}, err return Blob{}, err
} }
// check if tree has been saved before // check if tree has been saved before
buf := backend.Compress(data) id := backend.Hash(data)
id := backend.Hash(buf)
blob, err := arch.m.FindID(id) blob, err := arch.m.FindID(id)
// return the blob if we found it // return the blob if we found it
@ -113,7 +114,7 @@ func (arch *Archiver) SaveTreeJSON(item interface{}) (Blob, error) {
} }
// otherwise save the data // otherwise save the data
blob, err = arch.s.Save(backend.Tree, buf, id) blob, err = arch.s.SaveJSON(backend.Tree, item)
if err != nil { if err != nil {
return Blob{}, err return Blob{}, err
} }

View File

@ -2,11 +2,9 @@ package backend
import ( import (
"bytes" "bytes"
"compress/zlib"
"crypto/sha256" "crypto/sha256"
"encoding/hex" "encoding/hex"
"errors" "errors"
"io/ioutil"
"sort" "sort"
) )
@ -65,38 +63,6 @@ func EachID(be Lister, t Type, f func(ID)) error {
return nil return nil
} }
// Compress applies zlib compression to data.
func Compress(data []byte) []byte {
// apply zlib compression
var b bytes.Buffer
w := zlib.NewWriter(&b)
_, err := w.Write(data)
if err != nil {
panic(err)
}
w.Close()
return b.Bytes()
}
// Uncompress reverses zlib compression on data.
func Uncompress(data []byte) []byte {
b := bytes.NewBuffer(data)
r, err := zlib.NewReader(b)
if err != nil {
panic(err)
}
buf, err := ioutil.ReadAll(r)
if err != nil {
panic(err)
}
r.Close()
return buf
}
// Hash returns the ID for data. // Hash returns the ID for data.
func Hash(data []byte) ID { func Hash(data []byte) ID {
h := hashData(data) h := hashData(data)