[#234] core/netmap: Extend Source interface

Add GetNetMapByEpoch method. Add Epoch method.

Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
This commit is contained in:
Leonard Lyubich 2021-01-12 17:42:00 +03:00 committed by Alex Vanin
parent 1d56e60589
commit 2f4d90025f
2 changed files with 18 additions and 1 deletions

View file

@ -17,6 +17,21 @@ type Source interface {
// Implementations must not retain the network map pointer and modify
// the network map through it.
GetNetMap(diff uint64) (*netmap.Netmap, error)
// GetNetMapByEpoch reads network map by the epoch number from the storage.
// It returns the pointer to requested network map and any error encountered.
//
// Must return exactly one non-nil value.
//
// Implementations must not retain the network map pointer and modify
// the network map through it.
GetNetMapByEpoch(epoch uint64) (*netmap.Netmap, error)
// Epoch reads current epoch from the storage.
// It returns number of the current epoch and any error encountered.
//
// Must return exactly one non-default value.
Epoch() (uint64, error)
}
// GetLatestNetworkMap requests and returns latest network map from storage.

View file

@ -12,12 +12,14 @@ type netMapBuilder struct {
}
type netMapSrc struct {
netmap.Source
nm *netmapSDK.Netmap
}
func NewNetworkMapBuilder(nm *netmapSDK.Netmap) Builder {
return &netMapBuilder{
nmSrc: &netMapSrc{nm},
nmSrc: &netMapSrc{nm: nm},
}
}