forked from velero-io/velero
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathservice.go
More file actions
34 lines (26 loc) · 1.25 KB
/
service.go
File metadata and controls
34 lines (26 loc) · 1.25 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
/*
Copyright The Velero Contributors.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package cbtservice
import "context"
// Range defines the range of a change
type Range struct {
Offset int64
Length int64
}
// Service defines the methods for CBT service which could be implemented by Kubernetes SnapshotMetadataService or other customized services
type Service interface {
// GetAllocatedBlocks enumerates the allocated blocks of the snapshot and call the record callback
GetAllocatedBlocks(ctx context.Context, snapshot string, record func([]Range) error) error
// GetChangedBlocks enumerates the changed blocks of the snapshot since PIT of changeID and call the record callback
GetChangedBlocks(ctx context.Context, snapshot string, changeID string, record func([]Range) error) error
}