(logHeader []byte)
| 194 | } |
| 195 | |
| 196 | func (p *LevelDBWal) load(logHeader []byte) (l *kt.Log, err error) { |
| 197 | l = new(kt.Log) |
| 198 | |
| 199 | if err = utils.DecodeMsgPack(logHeader, &l.LogHeader); err != nil { |
| 200 | log.WithField("header", logHeader).WithError(err).Debug("decode log header failed") |
| 201 | err = errors.Wrap(err, "decode log header failed") |
| 202 | return |
| 203 | } |
| 204 | |
| 205 | dataKey := append(append([]byte(nil), logDataKeyPrefix...), p.uint64ToBytes(l.Index)...) |
| 206 | |
| 207 | var encData []byte |
| 208 | if encData, err = p.db.Get(dataKey, nil); err != nil { |
| 209 | err = errors.Wrap(err, "get log data failed") |
| 210 | return |
| 211 | } |
| 212 | |
| 213 | // load data |
| 214 | if err = utils.DecodeMsgPack(encData, &l.Data); err != nil { |
| 215 | err = errors.Wrap(err, "decode log data failed") |
| 216 | } |
| 217 | |
| 218 | return |
| 219 | } |
| 220 | |
| 221 | func (p *LevelDBWal) uint64ToBytes(o uint64) (res []byte) { |
| 222 | res = make([]byte, 8) |
no test coverage detected