Dmitrii Stepanov
cc8ff015b4
Context has to be passed as an argument: https://pkg.go.dev/context Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
57 lines
874 B
Go
57 lines
874 B
Go
package eigentrust
|
|
|
|
import (
|
|
"context"
|
|
|
|
"git.frostfs.info/TrueCloudLab/frostfs-node/pkg/services/reputation"
|
|
)
|
|
|
|
type EpochIteration struct {
|
|
e uint64
|
|
i uint32
|
|
}
|
|
|
|
func (x EpochIteration) Epoch() uint64 {
|
|
return x.e
|
|
}
|
|
|
|
func (x *EpochIteration) SetEpoch(e uint64) {
|
|
x.e = e
|
|
}
|
|
|
|
func (x EpochIteration) I() uint32 {
|
|
return x.i
|
|
}
|
|
|
|
func (x *EpochIteration) SetI(i uint32) {
|
|
x.i = i
|
|
}
|
|
|
|
func (x *EpochIteration) Increment() {
|
|
x.i++
|
|
}
|
|
|
|
type IterationTrust struct {
|
|
EpochIteration
|
|
reputation.Trust
|
|
}
|
|
|
|
// IterContext aggregates context and data required for
|
|
// iterations.
|
|
// nolint: containedctx
|
|
type IterContext struct {
|
|
context.Context
|
|
EpochIteration
|
|
}
|
|
|
|
func NewIterContext(ctx context.Context, epoch uint64, iter uint32) *IterContext {
|
|
ei := EpochIteration{}
|
|
|
|
ei.SetI(iter)
|
|
ei.SetEpoch(epoch)
|
|
|
|
return &IterContext{
|
|
Context: ctx,
|
|
EpochIteration: ei,
|
|
}
|
|
}
|