代码拉取完成,页面将自动刷新
package exporter
import (
"fmt"
sdk "gitee.com/dingyangzhuang/dgoflow/core/sdk"
)
// Exporter
type Exporter interface {
// GetFlowName get nbame of the flow
GetFlowName() string
// GetFlowDefinition get definition of the faas-flow
GetFlowDefinition(*sdk.Pipeline, *sdk.Context) error
}
// FlowExporter core exporter
type FlowExporter struct {
flow *sdk.Pipeline
flowName string
exporter Exporter // exporter
}
// createContext create a context from request handler
func (fexp *FlowExporter) createContext() *sdk.Context {
context := sdk.CreateContext("export", "",
fexp.flowName, nil)
return context
}
// Export retrieve core definition
func (fexp *FlowExporter) Export() ([]byte, error) {
// Init flow
fexp.flow = sdk.CreatePipeline()
fexp.flowName = fexp.exporter.GetFlowName()
context := fexp.createContext()
// Get definition: Get Pipeline definition from user implemented Define()
err := fexp.exporter.GetFlowDefinition(fexp.flow, context)
if err != nil {
return nil, fmt.Errorf("Failed to define flow, %v", err)
}
// Get DAG json definition
definition, _ := fexp.flow.Dag.GetDefinitionJson()
return definition, nil
}
// CreateFlowExporter initiate a FlowExporter with a provided Executor
func CreateFlowExporter(exporter Exporter) (fexp *FlowExporter) {
fexp = &FlowExporter{}
fexp.exporter = exporter
return fexp
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。