localStore implementing ChunkStore interface

This commit is contained in:
Daniel A. Nagy 2015-02-05 17:10:06 +01:00
parent 558fe2aaf8
commit 630a0b6748

29
bzz/localstore.go Normal file
View file

@ -0,0 +1,29 @@
// 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)
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
}