Live: declarative processing pipeline, input -> frames -> output, toggle protected POC (#37644)

This commit is contained in:
Alexander Emelin
2021-09-09 19:19:29 +03:00
committed by GitHub
parent d19f33b52f
commit 3ee861f57e
60 changed files with 5471 additions and 96 deletions
@@ -0,0 +1,29 @@
package pipeline
import (
"context"
"github.com/grafana/grafana-plugin-sdk-go/data"
)
// MultipleProcessor can combine several Processor and
// execute them sequentially.
type MultipleProcessor struct {
Processors []Processor
}
func (m MultipleProcessor) Process(ctx context.Context, vars ProcessorVars, frame *data.Frame) (*data.Frame, error) {
for _, p := range m.Processors {
var err error
frame, err = p.Process(ctx, vars, frame)
if err != nil {
logger.Error("Error processing frame", "error", err)
return nil, err
}
}
return frame, nil
}
func NewMultipleProcessor(processors ...Processor) *MultipleProcessor {
return &MultipleProcessor{Processors: processors}
}