-
Notifications
You must be signed in to change notification settings - Fork 197
/
partition_status.go
63 lines (55 loc) · 1.67 KB
/
partition_status.go
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
// Copyright 2014-2022 Aerospike, Inc.
//
// Portions may be licensed to Aerospike, Inc. under one or more contributor
// license agreements WHICH ARE COMPATIBLE WITH THE APACHE LICENSE, VERSION 2.0.
//
// 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 aerospike
import (
"fmt"
kvs "github.com/aerospike/aerospike-client-go/v7/proto/kvs"
)
// PartitionStatus encapsulates the pagination status in partitions.
type PartitionStatus struct {
// BVal
BVal int64
// Id shows the partition Id.
Id int
// Retry signifies if the partition requires a retry.
Retry bool
// Digest records the digest of the last key digest received from the server
// for this partition.
Digest []byte
// the following fields are transient
node *Node
sequence int
}
func newPartitionStatus(id int) *PartitionStatus {
return &PartitionStatus{Id: id, Retry: true}
}
func (ps *PartitionStatus) String() string {
r := 'F'
if ps.Retry {
r = 'T'
}
return fmt.Sprintf("%04d:%c", ps.Id, r)
}
func (ps *PartitionStatus) grpc() *kvs.PartitionStatus {
id := uint32(ps.Id)
bVal := ps.BVal
digest := ps.Digest
return &kvs.PartitionStatus{
Id: &id,
BVal: &bVal,
Digest: digest,
Retry: ps.Retry,
}
}