influxdb/query/trigger.go

58 lines
969 B
Go

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
}