13111: Add spying client for testing deferred loading.
[arvados.git] / sdk / go / arvados / fs_backend.go
1 // Copyright (C) The Arvados Authors. All rights reserved.
2 //
3 // SPDX-License-Identifier: Apache-2.0
4
5 package arvados
6
7 import "io"
8
9 type fsBackend interface {
10         keepClient
11         apiClient
12 }
13
14 // Ideally *Client would do everything; meanwhile keepBackend
15 // implements fsBackend by merging the two kinds of arvados client.
16 type keepBackend struct {
17         keepClient
18         apiClient
19 }
20
21 type keepClient interface {
22         ReadAt(locator string, p []byte, off int) (int, error)
23         PutB(p []byte) (string, int, error)
24 }
25
26 type apiClient interface {
27         RequestAndDecode(dst interface{}, method, path string, body io.Reader, params interface{}) error
28         UpdateBody(rsc resource) io.Reader
29 }