eventclock

package
v0.29.0-alpha.2 Latest Latest
Warning

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

Go to latest
Published: Oct 11, 2023 License: Apache-2.0 Imports: 2 Imported by: 3

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type EventFunc

type EventFunc func(time.Time)

EventFunc does some work that needs to be done at or after the given time.

type Interface

type Interface interface {
	baseclock.PassiveClock

	// Sleep returns after the given duration (or more).
	Sleep(d time.Duration)

	// EventAfterDuration invokes the given EventFunc after the given duration (or more),
	// passing the time when the invocation was launched.
	EventAfterDuration(f EventFunc, d time.Duration)

	// EventAfterTime invokes the given EventFunc at the given time or later,
	// passing the time when the invocation was launched.
	EventAfterTime(f EventFunc, t time.Time)
}

EventClock is an active clock abstraction for use in code that is testable with a fake clock that itself determines how time may be advanced. The timing paradigm is invoking EventFuncs rather than synchronizing through channels, so that the fake clock has a handle on when associated activity is done.

type Real

type Real struct {
	clock.RealClock
}

RealEventClock fires event on real world time

func (Real) EventAfterDuration

func (Real) EventAfterDuration(f EventFunc, d time.Duration)

EventAfterDuration schedules an EventFunc

func (Real) EventAfterTime

func (r Real) EventAfterTime(f EventFunc, t time.Time)

EventAfterTime schedules an EventFunc

Jump to

Keyboard shortcuts

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