Merge branch 'master' into 9998-no-count-items-available
[arvados.git] / services / keepstore / volume.go
index b72258d51a5e6358c190227db08d5bf8c419dfe4..778f27fcde87cbc324a246aec571b3fe7a5c2b8a 100644 (file)
@@ -7,6 +7,18 @@ import (
        "time"
 )
 
+type BlockWriter interface {
+       // WriteBlock reads all data from r, writes it to a backing
+       // store as "loc", and returns the number of bytes written.
+       WriteBlock(ctx context.Context, loc string, r io.Reader) error
+}
+
+type BlockReader interface {
+       // ReadBlock retrieves data previously stored as "loc" and
+       // writes it to w.
+       ReadBlock(ctx context.Context, loc string, w io.Writer) error
+}
+
 // A Volume is an interface representing a Keep back-end storage unit:
 // for example, a single mounted disk, a RAID array, an Amazon S3 volume,
 // etc.