37 lines
		
	
	
		
			632 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
		
			632 B
		
	
	
	
		
			Go
		
	
	
	
	
	
| package rpl
 | |
| 
 | |
| import (
 | |
| 	"errors"
 | |
| )
 | |
| 
 | |
| const (
 | |
| 	InvalidLogID uint64 = 0
 | |
| )
 | |
| 
 | |
| var (
 | |
| 	ErrLogNotFound    = errors.New("log not found")
 | |
| 	ErrStoreLogID     = errors.New("log id is less")
 | |
| 	ErrNoBehindLog    = errors.New("no behind commit log")
 | |
| 	ErrCommitIDBehind = errors.New("commit id is behind last log id")
 | |
| )
 | |
| 
 | |
| type LogStore interface {
 | |
| 	GetLog(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
 | |
| 
 | |
| 	// Delete logs before n seconds
 | |
| 	PurgeExpired(n int64) error
 | |
| 
 | |
| 	Sync() error
 | |
| 
 | |
| 	// Clear all logs
 | |
| 	Clear() error
 | |
| 
 | |
| 	Close() error
 | |
| }
 |