Merge branch 'master' into 14965-arv-mount-py-three
[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         LocalLocator(locator string) (string, error)
25 }
26
27 type apiClient interface {
28         RequestAndDecode(dst interface{}, method, path string, body io.Reader, params interface{}) error
29 }