Documentation
¶
Overview ¶
Package time contains some generic tools and helpers that are missing from the go's standard library
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Refresher ¶
type Refresher interface {
// StartRefreshing() starts asynchronous periodic refresh of interfaces and
// assigned IPs from the operating system
StartRefreshing()
// StopRefreshing() stops asynchronous periodic refresh of interfaces and
// assigned IPs from the operating system
StopRefreshing()
// GetRefreshCount() returns how many times was the interfaces information
// reloaded
GetRefreshCount() int
// IsRefreshing() returns true if currently the Refresher is Started
// and running action
IsRefreshing() bool
}
Refresher is a general thread safe periodic job runner with Start/Stop methods.
func NewRefresher ¶
func NewRefresher(channel <-chan time.Time, action func(), refreshOnCreate, autoRefresh bool) Refresher
NewRefresher returns a new thread safe refresher, which runs action() if only it was previously Started. action() is run every time there's a new message in channel. Messages from channel are received in sequence.
func NewTickerRefresher ¶
func NewTickerRefresher(action func(), refreshOnCreate, autoRefresh bool, autoRefreshPeriod time.Duration) Refresher
NewTickerRefresher returns a Refresher where refresh events are generated by a timed channel created with time.Ticker. It means, that if action() takes longer than refreshPeriod, refresh messages will be queued in the channel and a new action() will start immediately after the previous one ends.