// FetchAllDBlocks gets all of the fbInfo func (db *LevelDb) FetchAllDBlocks() (dBlocks []common.DirectoryBlock, err error) { db.dbLock.Lock() defer db.dbLock.Unlock() var fromkey []byte = []byte{byte(TBL_DB)} // Table Name (1 bytes) // Timestamp (8 bytes) var tokey []byte = []byte{byte(TBL_DB + 1)} // Table Name (1 bytes) dBlockSlice := make([]common.DirectoryBlock, 0, 10) iter := db.lDb.NewIterator(&util.Range{Start: fromkey, Limit: tokey}, db.ro) for iter.Next() { var dBlock common.DirectoryBlock _, err := dBlock.UnmarshalBinaryData(iter.Value()) if err != nil { return nil, err } //TODO: to be optimized?? dBlock.DBHash = common.Sha(iter.Value()) dBlockSlice = append(dBlockSlice, dBlock) } iter.Release() err = iter.Error() return dBlockSlice, nil }