influxdb/query/trigger.go

58 lines
969 B
Go
Raw Normal View History

2018-05-21 21:13:54 +00:00
package query
type TriggerSpec interface {
Kind() TriggerKind
}
type TriggerKind int
const (
AfterWatermark TriggerKind = iota
Repeated
AfterProcessingTime
AfterAtLeastCount
OrFinally
)
var DefaultTrigger = AfterWatermarkTriggerSpec{}
type AfterWatermarkTriggerSpec struct {
AllowedLateness Duration
}
func (AfterWatermarkTriggerSpec) Kind() TriggerKind {
return AfterWatermark
}
type RepeatedTriggerSpec struct {
Trigger TriggerSpec
}
func (RepeatedTriggerSpec) Kind() TriggerKind {
return Repeated
}
type AfterProcessingTimeTriggerSpec struct {
Duration Duration
}
func (AfterProcessingTimeTriggerSpec) Kind() TriggerKind {
return AfterProcessingTime
}
type AfterAtLeastCountTriggerSpec struct {
Count int
}
func (AfterAtLeastCountTriggerSpec) Kind() TriggerKind {
return AfterAtLeastCount
}
type OrFinallyTriggerSpec struct {
Main TriggerSpec
Finally TriggerSpec
}
func (OrFinallyTriggerSpec) Kind() TriggerKind {
return OrFinally
}