go-ethereum/bzz/localstore.go

29 lines
687 B
Go

// localstore.go
package bzz
type localStore struct {
memStore *memStore
dbStore *dbStore
}
// localStore is itself a chunk store , to stores a chunk only
// its integrity is checked ?
func (self *localStore) Put(chunk *Chunk) {
self.memStore.Put(chunk)
go self.dbStore.Put(chunk)
}
// Get(chunk *Chunk) looks up a chunk in the local stores
// This method is blocking until the chunk is retrieved so additional timeout is needed to wrap this call
func (self *localStore) Get(key Key) (chunk *Chunk, err error) {
chunk, err = self.memStore.Get(key)
if err == nil {
return
}
chunk, err = self.dbStore.Get(key)
if err != nil {
return
}
self.memStore.Put(chunk)
return
}