32 lines
509 B
Go
32 lines
509 B
Go
package agent
|
|
|
|
import (
|
|
"time"
|
|
)
|
|
|
|
type Option struct {
|
|
Interval time.Duration
|
|
Controllers []Controller
|
|
}
|
|
|
|
type OptionFunc func(*Option)
|
|
|
|
func defaultOption() *Option {
|
|
return &Option{
|
|
Controllers: make([]Controller, 0),
|
|
Interval: 10 * time.Second,
|
|
}
|
|
}
|
|
|
|
func WithControllers(controllers ...Controller) OptionFunc {
|
|
return func(opt *Option) {
|
|
opt.Controllers = controllers
|
|
}
|
|
}
|
|
|
|
func WithInterval(interval time.Duration) OptionFunc {
|
|
return func(opt *Option) {
|
|
opt.Interval = interval
|
|
}
|
|
}
|