uptime

package
v1.8.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 9, 2022 License: BSD-3-Clause Imports: 7 Imported by: 8

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Calculator

type Calculator interface {
	CalculateUptime(nodeID ids.NodeID) (time.Duration, time.Time, error)
	CalculateUptimePercent(nodeID ids.NodeID) (float64, error)
	// CalculateUptimePercentFrom expects [startTime] to be truncated (floored) to the nearest second
	CalculateUptimePercentFrom(nodeID ids.NodeID, startTime time.Time) (float64, error)
}

type LockedCalculator

type LockedCalculator interface {
	Calculator

	SetCalculator(isBootstrapped *utils.AtomicBool, lock sync.Locker, newC Calculator)
}

func NewLockedCalculator

func NewLockedCalculator() LockedCalculator

type Manager

type Manager interface {
	Tracker
	Calculator
}

func NewManager

func NewManager(state State) Manager

type State

type State interface {
	// GetUptime returns [upDuration] and [lastUpdated] to be truncated (floored) to the nearest second
	GetUptime(nodeID ids.NodeID) (upDuration time.Duration, lastUpdated time.Time, err error)
	// SetUptime expects [upDuration] and [lastUpdated] to be truncated (floored) to the nearest second
	SetUptime(nodeID ids.NodeID, upDuration time.Duration, lastUpdated time.Time) error
	// GetStartTime returns [startTime] truncated (floored) to the nearest second
	GetStartTime(nodeID ids.NodeID) (startTime time.Time, err error)
}

type TestManager

type TestManager interface {
	Manager
	SetTime(time.Time)
}

type TestState

type TestState struct {
	// contains filtered or unexported fields
}

func NewTestState

func NewTestState() *TestState

func (*TestState) AddNode

func (s *TestState) AddNode(nodeID ids.NodeID, startTime time.Time)

func (*TestState) GetStartTime

func (s *TestState) GetStartTime(nodeID ids.NodeID) (time.Time, error)

func (*TestState) GetUptime

func (s *TestState) GetUptime(nodeID ids.NodeID) (time.Duration, time.Time, error)

func (*TestState) SetUptime

func (s *TestState) SetUptime(nodeID ids.NodeID, upDuration time.Duration, lastUpdated time.Time) error

type Tracker

type Tracker interface {
	// Should only be called once
	StartTracking(nodeIDs []ids.NodeID) error

	// Should only be called once
	Shutdown(nodeIDs []ids.NodeID) error

	Connect(nodeID ids.NodeID) error
	IsConnected(nodeID ids.NodeID) bool
	Disconnect(nodeID ids.NodeID) error
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL