mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-07-21 20:26:41 +00:00
29 lines
687 B
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
|
|
}
|