diff options
Diffstat (limited to 'core/ticker.go')
-rw-r--r-- | core/ticker.go | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/core/ticker.go b/core/ticker.go index bb5afb4..5dbbc2a 100644 --- a/core/ticker.go +++ b/core/ticker.go @@ -19,6 +19,15 @@ package core import "time" +// TickerType is the type of ticker. +type TickerType int + +// TickerType enum. +const ( + TickerBA TickerType = iota + TickerDKG +) + // defaultTicker is a wrapper to implement ticker interface based on // time.Ticker. type defaultTicker struct { @@ -43,16 +52,23 @@ func (t *defaultTicker) Stop() { // newTicker is a helper to setup a ticker by giving an Governance. If // the governace object implements a ticker generator, a ticker from that // generator would be returned, else constructs a default one. -func newTicker(gov Governance) (t Ticker) { +func newTicker(gov Governance, tickerType TickerType) (t Ticker) { type tickerGenerator interface { - NewTicker() Ticker + NewTicker(TickerType) Ticker } if gen, ok := gov.(tickerGenerator); ok { - t = gen.NewTicker() + t = gen.NewTicker(tickerType) } if t == nil { - t = newDefaultTicker(gov.GetConfiguration(0).Lambda) + var duration time.Duration + switch tickerType { + case TickerBA: + duration = gov.GetConfiguration(0).LambdaBA + case TickerDKG: + duration = gov.GetConfiguration(0).LambdaDKG + } + t = newDefaultTicker(duration) } return } |