11package db
22
33import (
4+ "bytes"
5+ "io/ioutil"
46 "os"
57 "strings"
68
@@ -29,8 +31,8 @@ func newBackend() *backend {
2931 return & backend {
3032 bt : bt ,
3133 cache : newCache (),
32- reader : record .NewReader (file ),
33- writer : record .NewWriter (file ),
34+ reader : record .NewReader (file , new (record. LittleEndianDecoder ) ),
35+ writer : record .NewWriter (file , new (record. LittleEndianEncoder ) ),
3436 }
3537}
3638
@@ -39,18 +41,15 @@ func (b *backend) Close() {
3941}
4042
4143func (b * backend ) getData (offset int64 ) []byte {
42- reader , err := b .reader .ReadAt (offset )
44+ reader , err := b .reader .ReadFromIndex (offset )
4345 if err != nil {
4446 panic ("unimplemented" )
4547 }
46- decoder := record .NewRecordDecoder (reader )
47- var record record.Record
48- err = decoder .Decode (& record )
48+ data , err := ioutil .ReadAll (reader )
4949 if err != nil {
5050 panic ("unimplemented" )
5151 }
52-
53- return record .Data
52+ return data
5453}
5554
5655// if it couldn't find anything related to path, it return Value of 0 rev.
@@ -89,23 +88,12 @@ func (b *backend) Put(rev int, path Path, data []byte) {
8988 }
9089
9190 b .rev ++
92-
93- // offset, data
94- offset , w , err := b .writer .Append ()
95- if err != nil {
96- panic ("unimplemented" )
97- }
98-
99- err = record .NewRecordEncoder (w ).Encode (& record.Record {Data : data })
91+ offset , err := b .writer .Append (bytes .NewBuffer (data ))
10092 if err != nil {
10193 panic ("unimplemented" )
10294 }
10395
10496 nv .offset = offset
105- _ , err = w .Write (data )
106- if err != nil {
107- panic ("unimplemented" )
108- }
10997
11098 b .writer .Flush ()
11199}
0 commit comments