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
|
||
|
}
|
||
|
}
|