influxdb/query/execute/source.go

29 lines
588 B
Go
Raw Normal View History

2018-05-21 21:13:54 +00:00
package execute
import (
"context"
"fmt"
2018-05-21 21:20:06 +00:00
"github.com/influxdata/platform/query/plan"
2018-05-21 21:13:54 +00:00
)
type Node interface {
AddTransformation(t Transformation)
}
type Source interface {
Node
Run(ctx context.Context)
}
type CreateSource func(spec plan.ProcedureSpec, id DatasetID, ctx Administration) (Source, error)
var procedureToSource = make(map[plan.ProcedureKind]CreateSource)
func RegisterSource(k plan.ProcedureKind, c CreateSource) {
if procedureToSource[k] != nil {
panic(fmt.Errorf("duplicate registration for source with procedure kind %v", k))
}
procedureToSource[k] = c
}