ledisdb/wal/wal.go

47 lines
861 B
Go
Raw Normal View History

2014-09-15 18:42:25 +04:00
package wal
import (
"errors"
)
const (
InvalidLogID uint64 = 0
)
var (
ErrLogNotFound = errors.New("log not found")
ErrLessLogID = errors.New("log id is less")
)
type LogIDGenerator interface {
// Force reset to id, if current id is larger than id, nothing reset
Reset(id uint64) error
// ID must be first at 1, and increased monotonously, 0 is invalid
GenerateID() (uint64, error)
Close() error
}
type Store interface {
GetLog(id uint64, log *Log) error
// Get the first log which ID is equal or larger than id
SeekLog(id uint64, log *Log) error
FirstID() (uint64, error)
LastID() (uint64, error)
// if log id is less than current last id, return error
StoreLog(log *Log) error
StoreLogs(logs []*Log) error
// Delete logs [start, stop]
DeleteRange(start, stop uint64) error
// Clear all logs
Clear() error
Close() error
}