Refactor replica system
This commit is contained in:
65
mock/replica_client.go
Normal file
65
mock/replica_client.go
Normal file
@@ -0,0 +1,65 @@
|
||||
package mock
|
||||
|
||||
import (
|
||||
"context"
|
||||
"io"
|
||||
|
||||
"github.com/benbjohnson/litestream"
|
||||
)
|
||||
|
||||
var _ litestream.ReplicaClient = (*ReplicaClient)(nil)
|
||||
|
||||
type ReplicaClient struct {
|
||||
GenerationsFunc func(ctx context.Context) ([]string, error)
|
||||
DeleteGenerationFunc func(ctx context.Context, generation string) error
|
||||
SnapshotsFunc func(ctx context.Context, generation string) (litestream.SnapshotIterator, error)
|
||||
WriteSnapshotFunc func(ctx context.Context, generation string, index int, r io.Reader) (litestream.SnapshotInfo, error)
|
||||
DeleteSnapshotFunc func(ctx context.Context, generation string, index int) error
|
||||
SnapshotReaderFunc func(ctx context.Context, generation string, index int) (io.ReadCloser, error)
|
||||
WALSegmentsFunc func(ctx context.Context, generation string) (litestream.WALSegmentIterator, error)
|
||||
WriteWALSegmentFunc func(ctx context.Context, pos litestream.Pos, r io.Reader) (litestream.WALSegmentInfo, error)
|
||||
DeleteWALSegmentsFunc func(ctx context.Context, a []litestream.Pos) error
|
||||
WALSegmentReaderFunc func(ctx context.Context, pos litestream.Pos) (io.ReadCloser, error)
|
||||
}
|
||||
|
||||
func (c *ReplicaClient) Type() string { return "mock" }
|
||||
|
||||
func (c *ReplicaClient) Generations(ctx context.Context) ([]string, error) {
|
||||
return c.GenerationsFunc(ctx)
|
||||
}
|
||||
|
||||
func (c *ReplicaClient) DeleteGeneration(ctx context.Context, generation string) error {
|
||||
return c.DeleteGenerationFunc(ctx, generation)
|
||||
}
|
||||
|
||||
func (c *ReplicaClient) Snapshots(ctx context.Context, generation string) (litestream.SnapshotIterator, error) {
|
||||
return c.SnapshotsFunc(ctx, generation)
|
||||
}
|
||||
|
||||
func (c *ReplicaClient) WriteSnapshot(ctx context.Context, generation string, index int, r io.Reader) (litestream.SnapshotInfo, error) {
|
||||
return c.WriteSnapshotFunc(ctx, generation, index, r)
|
||||
}
|
||||
|
||||
func (c *ReplicaClient) DeleteSnapshot(ctx context.Context, generation string, index int) error {
|
||||
return c.DeleteSnapshotFunc(ctx, generation, index)
|
||||
}
|
||||
|
||||
func (c *ReplicaClient) SnapshotReader(ctx context.Context, generation string, index int) (io.ReadCloser, error) {
|
||||
return c.SnapshotReaderFunc(ctx, generation, index)
|
||||
}
|
||||
|
||||
func (c *ReplicaClient) WALSegments(ctx context.Context, generation string) (litestream.WALSegmentIterator, error) {
|
||||
return c.WALSegmentsFunc(ctx, generation)
|
||||
}
|
||||
|
||||
func (c *ReplicaClient) WriteWALSegment(ctx context.Context, pos litestream.Pos, r io.Reader) (litestream.WALSegmentInfo, error) {
|
||||
return c.WriteWALSegmentFunc(ctx, pos, r)
|
||||
}
|
||||
|
||||
func (c *ReplicaClient) DeleteWALSegments(ctx context.Context, a []litestream.Pos) error {
|
||||
return c.DeleteWALSegmentsFunc(ctx, a)
|
||||
}
|
||||
|
||||
func (c *ReplicaClient) WALSegmentReader(ctx context.Context, pos litestream.Pos) (io.ReadCloser, error) {
|
||||
return c.WALSegmentReaderFunc(ctx, pos)
|
||||
}
|
||||
Reference in New Issue
Block a user