Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type BlockMeter ¶
BlockMeter calculates block time interval dynamically.
func StaticBlockMeter ¶
func StaticBlockMeter(d uint32) BlockMeter
StaticBlockMeter returns BlockMeters that always returns (d, nil).
type BlockTickHandler ¶
type BlockTickHandler func()
BlockTickHandler is a callback of a certain block advance.
type BlockTimer ¶
type BlockTimer struct {
// contains filtered or unexported fields
}
BlockTimer represents block timer.
It can tick the blocks and perform certain actions on block time intervals.
func NewBlockTimer ¶
func NewBlockTimer(dur BlockMeter, h BlockTickHandler) *BlockTimer
NewBlockTimer creates a new BlockTimer.
Reset should be called before timer ticking.
func NewOneTickTimer ¶
func NewOneTickTimer(dur BlockMeter, h BlockTickHandler) *BlockTimer
NewOneTickTimer creates a new BlockTimer that ticks only once.
Do not use delta handlers with pulse in this timer.
func (*BlockTimer) OnDelta ¶
func (t *BlockTimer) OnDelta(mul, div uint32, h BlockTickHandler, opts ...DeltaOption)
OnDelta registers handler which is executed on (mul / div * BlockMeter()) block after basic interval reset.
If WithPulse option is provided, handler is executed (mul / div * BlockMeter()) block during base interval.
func (*BlockTimer) Reset ¶
func (t *BlockTimer) Reset() error
Reset resets previous ticks of the BlockTimer.
Returns BlockMeter's error upon occurrence.
func (*BlockTimer) Tick ¶
func (t *BlockTimer) Tick(h uint32)
Tick ticks one block in the BlockTimer.
Executes all callbacks which are awaiting execution at the new block.
type DeltaOption ¶
type DeltaOption func(*deltaCfg)
DeltaOption is an option of delta-interval handler.
func WithPulse ¶
func WithPulse() DeltaOption
WithPulse returns option to call delta-interval handler multiple times.